Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在服务器上运行时给出空白输出的gawk命令_Linux_Shell_Unix_Awk_Gawk - Fatal编程技术网

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

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

我有下面的脚本从|分隔的文件中删除换行符。此命令在本地主机中运行良好。但在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

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。这解决了我的问题。