考虑具有科学数据的文本文件,例如:
5.787037037037037063e-02 2.048402977658663748e-01
1.157407407407407413e-01 4.021264347118673754e-01
1.736111111111111049e-01 5.782032163406526371e-01例如,我如何轻松地删除文件中的每一行或每10行中的9行?例如,使用bash脚本可以吗?
背景:文件很大,但我需要的数据要少得多。请注意,我使用的是Ubuntu/Linux。
发布于 2012-03-27 18:16:29
您可以使用awk和shell脚本。Awk可能很难但是..。
这将删除告诉它的特定行:
nawk -f awkfile.awk [filename]
awkfile.awk contents
BEGIN {
if (!lines) lines="3 4 7 8"
n=split(lines, lA, FS)
for(i=1;i<=n;i++)
linesA[lA[i]]
}
!(FNR in linesA)另外,我不记得VIM是否附带了标准的Ubuntu。如果得不到的话。
然后用vim vim文件名打开文件。
然后键入
:%!awk NR\%2 or :%!awk NR\%2 这将删除所有其他行。只需将2改为另一个整数就可以得到不同的频率。
https://stackoverflow.com/questions/9894986
复制相似问题