2017-05-25 62 views
1

我有下面的脚本来删除换行符|分隔文件。该命令在本地主机上正常工作。但是,让空白输出Linux服务器gawk命令在服务器上运行时给出空白输出

gawk -v RS="[^|]+([|][^|]+){2}\n" '{ gsub("\n", " ", RT); print RT}' 

下面就运行的同时,我本地主机
$cat sample.csv
$ No|Name|sal
2|gkdjkh|554
3|fgh
cvb|678
4|tyu|789
5|ghl
上得到输出tyu|5677
6|yyui
tyui
uui|780

Tarun [email protected] ~
$ gawk -v RS="[^|]+([|][^|]+){2}\n" '{ gsub("\n", " ", RT); print RT}' sample.csv
$ No|Name|sal
2|gkdjkh|554
3|fgh cvb|678
4|tyu|789
5|ghl tyu|5677
6|yyui tyui uui|780

+0

将您的代码发布为纯文本,而不是截图。 – Barmar

+0

也许你有不同版本的'gawk'。什么'gawk --version'显示? – Barmar

+0

“RT”变量已添加到3.0中。 – Barmar

回答

1

RE间隔仅在gawk 4.0中成为默认值。将脚本更改为:

gawk --re-interval -v RS='[^|]+([|][^|]+){2}\n' '{ gsub(/\n/, " ", RT); print RT}' 

它可以在两个gawk版本中工作。或者更好的是在你的所有机器上获得当前的gawk。

+1

非常感谢**艾德莫顿**。这解决了我的问题。 –