题
我有一个巨大的文本文件,大约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
不隶属于 StackOverflow