我有一个与文件对应的列表。这些文件必须根据它们在列表中的顺序附加到单个文件中。
order.list:
FLORIDA #corresponding file is florida.txt
ILLINOIS #corresponding file is illinois.txt
UTAH #corresponding file is utah.txt
使用order.list
上述内容,我必须.txt
使用 utah.txt 的顺序附加文件,然后是 florida.txt 然后是 illinois.txt
scenario 1:
order.list:
UTAH
FLORIDA
ILLINOIS
cat utah.txt >> final.txt
cat florida.txt >> final.txt
cat illinois.txt >> final.txt
scenario 2:
order.list:
ILLINOIS
UTAH
cat illinois.txt >> final.txt
cat utah.txt >> final.txt
除了改变列表的顺序之外,有时,order.list
只能包含两行或一行。
我可以尝试 if 语句,但这可能需要很长时间。有没有有效的方法来处理这个问题?
答案1
这个怎么样:
rm final.txt & cat order.list | tr '[:upper:]' '[:lower:]' | while read line; do cat $line.txt >> final.txt; done
首先,删除现有的 Final.txt,然后读取 order.list 并将其转换为小写(根据您提供的输入),然后附加到读取的顺序中。
答案2
#!/bin/bash
INPUT_FILE=order.list
OUTPUT_FILE=final.txt
# Empty the output file
>${OUTPUT_FILE}
while read COUNTRY
do
FILENAME=$(echo ${COUNTRY} | tr '[A-Z]' '[a-z]')
cat ${FILENAME}.txt >> ${OUTPUT_FILE}
done < ${INPUT_FILE}