相关疑难解决方法(0)

如何` ... | awk '$1=$1'` 删除多余的空格?

按照我的理解,$1是第一个字段。但奇怪的是,awk '$1=$1'省略了额外的空格。

$ echo "$string"
foo    foo bar               bar

$ echo "$string" | awk '$1=$1'
foo foo bar bar
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

awk

17
推荐指数
2
解决办法
3865
查看次数

删除间距可能不同的重复行,但忽略以 # 开头的行

这是对先前问题的跟进。即使字段的间距不同,我也使用此语法来删除重复的行

awk '{$1=$1};!NF||!seen[$0]++' /tmp/fstab
Run Code Online (Sandbox Code Playgroud)

现在我想排除以#. 所以我使用这个语法

awk '/^#/ || "'!'"'{$1=$1};!NF||!seen[$0]++' /tmp/fstab
-bash: !: event not found
Run Code Online (Sandbox Code Playgroud)

我的语法有什么问题?

awk text-processing

-4
推荐指数
1
解决办法
81
查看次数

标签 统计

awk ×2

text-processing ×1