这是Read from file into variable - Bash Script的第二部分。
我有一个bash脚本,它读取文件中的字符串,解析并将其分配给一个变量。文件如下所示(file.txt):

database1 table1
database1 table4
database2
database3 table2

在脚本中使用awk:
s=$(awk '{$1=$1}1' OFS='.' ORS='|' file.txt)
LIST="${s%|}"

echo "$LIST"
database1.table1|database1.table4|database2|database3.table2

但我需要在每个子字符串的末尾添加一些通配符。我需要这个结果:
database1.table1.*|database1.table4.*|database2*.*|database3.table2.*

条件是:如果我们读取database2,那么输出应该是database2*.*如果我们读取一个数据库和一个表,那么输出应该是database1.table1.*

最佳答案

将此awk与ORS='.*|'一起使用:

s=$(awk '$0=="database2"{$0=$0 "*.*";print;next} {$2=$2 ".*"}1' OFS='.' ORS='|' file.txt)
LIST="${s%|}"

echo "$LIST"
database1.table1.*|database1.table4.*|database2*.*|database3.table2.*

关于mysql - 从文件读取到变量-Bash脚本take2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23412765/

10-15 00:08