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

标签 linux shell unix awk gawk

我有下面的脚本来从 | 中删除换行符定界文件。此命令在本地主机中运行良好。但是在 linux 服务器上运行时给出空白输出

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

下面是我在本地主机上得到的输出
$cat 样本.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);打印 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。

关于linux - gawk 命令在服务器上运行时给出空白输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44174222/

相关文章:

linux - 如何使用 linux 命令合并两个单列 csv 文件

c# - 如何在 Linux 上使用 Mono 获取文件信息

java - 为什么我的curl命令不能与Java ProcessBuilder API一起使用

shell - 检查系统上某个根CA是否受信任

sql - 行尾有“^M”字符

linux - 从空格后开始的行中删除所有内容

linux - 根据条件将 bash 中的 CSV 文件拆分为多个文件

bash - 如何使用 sed 替换特定单词后的文本?

unix - `(cd X; pwd)` 有时返回两行

linux - 在 Bash 中将多个用户输入添加到一个变量中