从文件读入变量 - Bash Script

and*_*sg3 0 mysql linux bash shell list

我正在使用bash脚本来备份MySQL.我需要从文件中读取一系列字符串并将它们传递给我脚本中的变量.例:

这样的东西将在文件中(file.txt)

database1 table1
database1 table4
database2
database3 table2
Run Code Online (Sandbox Code Playgroud)

我的脚本需要读取文件并将这些字符串放在一个变量中:

#! bin/bash
LIST="database1.table1|database1.table4|database2|database3.table2"
Run Code Online (Sandbox Code Playgroud)

编辑.我改变了主意,现在我需要这个输出:

database1.table1.*|database1.table4.*|database2*.*|database3.table2.*
Run Code Online (Sandbox Code Playgroud)

dev*_*ull 6

您可以使用tr替换换行符和空格:

LIST=$(tr ' \n' '.|' < file.txt)
Run Code Online (Sandbox Code Playgroud)

由于输入文件的最后一行可能本身包含换行符,因此您需要删除它:

LIST=$(tr ' ' '.' < file.txt | paste -sd'|')
Run Code Online (Sandbox Code Playgroud)


anu*_*ava 5

使用awk:

s=$(awk '{$1=$1}1' OFS='.' ORS='|' file)
LIST="${s%|}"

echo "$LIST"
database1.table1|database1.table4|database2|database3.table2
Run Code Online (Sandbox Code Playgroud)