我正在使用以下命令从名为IMSI.txt的文件中读取:
$awk 'NR>2' IMSI.txt | awk '{print $NF}'
我需要输出此命令才能转到名为NEW.txt的新文件
所以我这样做了:
$awk 'NR>2' IMSI.txt | awk '{print $NF}' > NEW.txt
这很好用,但是当我打开文件时,命令的输出在同一行。 新线路被忽视了。
例如,如果我在控制台中获得输出
222
111
333
我打开文本文件,然后我
222111333
我该如何解决?
感谢您的帮助:)
PS:我在Windows上使用Cygwin
答案 0 :(得分:2)
我猜你的(Windows-y)编辑器希望在行的末尾看到Carriage Returns,而不是Linefeeds(这是awk
输出的内容)。将您的print
更改为此
print $NF "\r"
所以它看起来完全是这样的:
awk 'NR>2 {print $NF "\r"}' IMSI.txt
答案 1 :(得分:2)
只需将ORS设置为"\r\n"
即可让Awk为每个输出生成DOS行结尾。我相信这是最自然的解决方案:
awk -v ORS="\r\n" '{print $NF}' > NEW.txt
使用Cygwin在虚拟XP系统上测试。
来自Awk的手册:
ORS 输出记录分隔符,默认为换行符。