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)
您可以使用tr替换换行符和空格:
LIST=$(tr ' \n' '.|' < file.txt)
Run Code Online (Sandbox Code Playgroud)
由于输入文件的最后一行可能本身包含换行符,因此您需要删除它:
LIST=$(tr ' ' '.' < file.txt | paste -sd'|')
Run Code Online (Sandbox Code Playgroud)
使用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)