基于列表追加文件

基于列表追加文件

我有一个与文件对应的列表。这些文件必须根据它们在列表中的顺序附加到单个文件中。

  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}

相关内容