从许多文件中提取列并将其粘贴到一个文件中

时间:2014-07-21 11:59:32

标签: python linux awk

我有许多文件(250-20000之间),每个文件包含两个带头文件的列。 我想从这些文件中提取第二列并将它们全部粘贴在一个文件中,以便我可以对其进行分析。

#Frame      Dih_00000
       1     -92.6371
       2     -97.9913
       3     -91.1572
       4     -89.9374
       5     -91.8934
       6     -93.1060
       7     -93.4912

文件看起来像这样。 你能帮我解决一下如何用awk或python脚本来做这件事。

4 个答案:

答案 0 :(得分:0)

cat file.in | awk {'print $2'} > file.out

获取第二列并将其保存在file.out

答案 1 :(得分:0)

你可以做。

awk '$0=$2' files* > new_file

答案 2 :(得分:0)

awk '{print $2}' dihed_*.dat > file.new

或者只使用cut命令

cut -d" " -f2 dihed_*.dat > file.new

修改

不知道它是否是优雅的解决方案,但它符合您的要求。

tail -q -n +2  dihed_*.dat | awk '{print $2}' > file.new

tail -q -n +2  dihed_*.dat | cut -d" " -f2 > file.new

答案 3 :(得分:0)

awk '{ a[FNR] = (FNR in a ? a[FNR] OFS : "") $2 } END{ for (i=1;i<=FNR;i++) print a[i] }' file1 file2 ...

以上假设您的所有文件都具有相同的行数。如果情况并非如此,请告诉我们并更新您的问题以发布一些更具代表性的样本输入(例如3个不同长度的小文件)和预期输出。