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

gawk command giving blank output while running on server

我有以下脚本可以从 | 中删除换行符定界文件。此命令在本地主机中运行良好。但是在 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

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

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

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