我有30个文件,每个文件都有相同的数据结构,但是对于不同的观察。我想提取每个文件的前4列数据,然后将每个文件的结果输出到一个新文件中。因此,我将有另外30个文件,每个文件只包含原始文件的前4列数据。
我在Ubuntu中使用了命令行。我使用了以下代码,但我只将所有输出都放在一个文件中。
awk '{print $1, $2, $3, $4}' File_*.txt > Part_File.txt
##我使用*代表01到30.
有人能帮帮我吗?提前致谢。
答案 0 :(得分:2)
编辑: 根据OP需要输出文件作为Output_file00等格式,以下可能会对您有所帮助。此外,如果您只有30个文件可供阅读,那么您可以删除此close(prev);prev=FILENAME
部分,这样可以避免too many files opened
错误,以防您通过此代码读取n个文件。
awk 'FNR==1{close(out); out=sprintf("Output_%02d",++i)} {print $1, $2, $3, $4 > out}' File_*.txt
由于您没有提供样品,因此无法测试,请您试试,请告诉我这是否对您有所帮助。
awk '{print $1,$2,$3,$4 > ("Output_file"i)}' File_*.txt
上面应该创建Output_file,例如 - > Output_file1
,Output_file2
等等。