Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
2.2k views
in Technique[技术] by (71.8m points)

mysql - Read from file into variable - Bash Script take2

This is a second part of Read from file into variable - Bash Script

I have a bash script that reads strings in a file parses and assigns it to a variable. The file looks like this (file.txt):

database1 table1
database1 table4
database2
database3 table2

Using awk in the script:

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

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

But I need to add some wildcards at the end of each substring. I need this result:

database1.table1.*|database1.table4.*|database2*.*|database3.table2.*

The conditions are: if we read database2 the output should be database2*.* and if we read a database and a table the output should be database1.table1.*

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Use this awk with 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.*

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...