这是 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.*
条件是:如果我们读取数据库2,输出应该是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 Script take2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412765/