mysql - 从文件读入变量 - Bash Script take2

标签 mysql linux bash shell awk

这是 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/

相关文章:

php - 在 MySQL 中将 IP 转换为 Long

linux - 多个驱动程序可以注册来处理Linux中的同一个设备吗

python - 将 bash 参数传递给 python 脚本

linux - 结束一个 mpirun 进程终止一个 b​​ash 循环

mysql - MySQL数据库所需的总和

php - 使用 mysql_real_escape_string 返回空

python - 使用python将Linux文件中的信息解析到Windows

linux - 未知可变长度的水平和垂直行间距

bash - 通过 sbatch 传递命令行参数

mysql - 从 3 个表进行大查询