我有一个巨大的文本文件,大约400.000线宽80个charachters上LIUX。

需要“展开”的文件,合并四行成一个 结束了具有线的1/4,每行80个* 4 charachters长。

任何建议?

有帮助吗?

解决方案

这是更简单的方法与AWK做将是:

awk '{ printf $0 } (NR % 4 == 0) { print }' filename

但如果你想防止没有尾随换行符结束了它变得有点复杂:

awk '{ printf $0 } (NR % 4 == 0) { print } END { if (NR % 4 != 0) print }' filename

其他提示

perl -pe 'chomp if (++$i % 4);'

我希望我理解正确你的问题。你有一个这样的输入线(除了您的线长):

abcdef
ghijkl
mnopqr
stuvwx
yz0123
456789
ABCDEF

您想这样的输出:

abcdefghijklmnopqrstuvwx
yz0123456789ABCDEF

以下awk程序应该这样做:

{ line = line $0 }
(NR % 4) == 0 { print line; line = "" }
END { if (line != "") print line }

运行这样的:

awk -f merge.awk data.txt
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top