根据uniq的手册页
-f选项用于跳过字段
跳过字符的-s选项
有人可以用相关的例子来解释,这两个选项究竟是如何运作的?
答案 0 :(得分:2)
香草uniq
:
/tmp$ cat > foo
foo
foo
bar
bar
bar
baz
baz
/tmp$ uniq foo
foo
bar
baz
uniq -s
跳过第一个字符:
/tmp$ cat > bar
1foo
2foo
3bar
4bar
5bar
6baz
7baz
/tmp$ uniq -s1 bar
1foo
3bar
6baz
uniq -f
跳过输入的第一个字段(此处为主机):
/tmp$ cat > baz
127.0.0.1 foo
192.168.1.1 foo
example.com bar
www.example.com bar
localhost bar
gateway1 baz
192.168.1.254 baz
/tmp$ uniq -f1 baz
127.0.0.1 foo
example.com bar
gateway1 baz
答案 1 :(得分:0)
我看起来很清楚,但无论如何你都去了。
-f
跳过字段。所以
(ol)noufal@sanitarium% echo "a b c\nd e c" | uniq -c
1 a b c
1 d e c
打印两个单独的行但如果跳过前两个字段(-f2)并仅比较最后一个字段,
(ol)noufal@sanitarium% echo "a b c\nd e c" | uniq -c -f2
2 a b c
他们都是一样的。
类似地,
(ol)noufal@sanitarium% echo "abc\ndec" | uniq -c
1 abc
1 dec
(ol)noufal@sanitarium% echo "abc\ndec" | uniq -c -s2
2 abc
我们在这里跳过前两个字符(而不是字段)。
关于字段的定义,手册有。
然后,字段是一系列空白(通常是空格和/或TAB) 非空白字符。