gawk命令在服务器上运行时给出空白输出

时间:2017-05-25 06:57:38

标签: linux shell unix awk gawk

我有以下脚本从|中删除换行符分隔文件。此命令在本地主机中正常工作。但是在linux服务器上运行时给出空白输出

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 Pant@GGN000154654002 ~
$ 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

1 个答案:

答案 0 :(得分:1)

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

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

它可以在两个gawk版本中使用。或者甚至更好地在你的所有机器上获得当前的傻瓜。