小编Kyl*_*yle的帖子

如果字段重复,则删除行

如果第一个字段是重复的,则寻找awk(或sed)单行来从输出中删除行.

删除我看过的重复行的示例是:

awk 'a !~ $0; {a=$0}'
Run Code Online (Sandbox Code Playgroud)

尝试使用它作为没有运气的基础(我认为将0美元改为1美元就可以了,但似乎没有用).

awk sed

14
推荐指数
2
解决办法
2万
查看次数

凌乱的bash变量

我正在编写一个脚本来ssh到一个机器列表并将一个变量与另一个值进行比较..我遇到了一个问题(我有几个解决方法,但此时我只是想知道为什么这个方法不是不工作.

VAR=`ssh $i "awk -F: '/^bar/ {print \$2}' /local/foo.txt"`
Run Code Online (Sandbox Code Playgroud)

($ i将是主机名.主机是可信的,没有给出密码提示)

foo.txt的示例:

foo:123456:abcdef
bar:789012:ghijkl
baz:345678:mnopqr
Run Code Online (Sandbox Code Playgroud)

我假设它是引号的问题,或者需要某个地方.我已经尝试了几种方法(不同的引用,使用$()而不是``等),但似乎无法正确.我的脚本使用以下代码正常工作:

VAR=`ssh $i "grep bar /local/foo.txt" | awk -F: '{print \$2}'`
Run Code Online (Sandbox Code Playgroud)

就像我说的那样,只是一种好奇心,任何回应都会受到赞赏.

忘了发布我的输出:awk吐出整个匹配的行,而不是第二部分.使用引号和"有点"我似乎得到一个关于"{print"命令未找到等的错误,好像在某处有一个新行.

bash awk

5
推荐指数
1
解决办法
438
查看次数

用awk删除包含唯一第一个字段的行?

希望仅打印具有重复的第一个字段的行.例如,从看起来像这样的数据:

1 abcd
1 efgh
2 ijkl
3 mnop
4 qrst
4 uvwx
Run Code Online (Sandbox Code Playgroud)

应打印出来:

1 abcd
1 efgh
4 qrst
4 uvwx
Run Code Online (Sandbox Code Playgroud)

(仅供参考 - 我的数据中第一个字段的长度不总是1个字符)

sorting awk grep sed uniq

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

标签 统计

awk ×3

sed ×2

bash ×1

grep ×1

sorting ×1

uniq ×1