Linux 在服务器上运行时给出空白输出的gawk命令
我有下面的脚本从|分隔的文件中删除换行符。此命令在本地主机中运行良好。但在linux服务器上运行时提供空白输出Linux 在服务器上运行时给出空白输出的gawk命令,linux,shell,unix,awk,gawk,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 Tar
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
TarunPant@GGN000154654002~
$gawk-vrs=“[^ |]+([|][^ |]]+{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
重新间隔仅在gawk 4.0中成为默认值。将脚本更改为:
gawk --re-interval -v RS='[^|]+([|][^|]+){2}\n' '{ gsub(/\n/, " ", RT); print RT}'
这两种版本都适用。或者最好是在所有机器上查看当前的gawk。以纯文本形式发布代码,而不是屏幕截图。可能您有不同版本的
gawk
。gawk--version
显示了什么?在3.0中添加了RT
变量。我在本地主机中添加了GNU Awk 4.1.4
。在服务器中添加了GNU Awk 3.1.7
。再次添加了一些示例输入/输出。非常感谢Ed Morton。这解决了我的问题。