遍历猛砸
的文件列表我有一个文件列表,我得到通过执行这样的:ls core_* | sort -n -t _ -k 2
遍历猛砸
,给了我这样的事情:
core_20171201142359.csv core_20171202131548.csv core_20171203141112.csv
的目标是获得一个单个文件,在其中按顺序追加每个单个文件的所有内容。
因此,我想逐一打开每个文件,将其内容复制到另一个文件中,将以前的源文件移动到另一个目录以便保存并继续。
要总是得到第一个文件,我使用ls core_* | sort -n -t _ -k 2 | head -1
,我需要循环所有这些文件。
如何知道何时不需要处理更多文件?
回答:
for file in $(ls core_* | sort -n -t _ -k 2) do
cat ${file} >> one_big_file.csv
mv ${file} /anywhere/you/want
done
将读取每个文件,所有行复制到one_big_file.csv,只删除读取文件到/任何地方/你/想
回答:
你可以试试这个:
ls core_* | sort -n -t _ -k 2 | while read f; do cat $f >> total.csv; done
而且旁边与cat
你可以执行move
等
回答:
对于bash,你可以将文件名存储在一个数组中:
files=(core_*)
然后,第一项是
first="${files[0]}"
你还可以用这个迭代(引号是绝对必需的)
for file in "${files[@]}"; do echo "$file"
done
或者,如果你需要做一些事情的所有文件一次:
cat "${files[@]}" > core_all.csv
但如果是这样的话,你不需要将它们存储在一起
cat core_* > core_all.csv
以上是 遍历猛砸 的全部内容, 来源链接: utcz.com/qa/264607.html