uniq 在达尔文贝壳上的奇怪行为

发布于 2024-11-02 04:01:05 字数 253 浏览 5 评论 0原文

我在 Linux 机器上的许多 shell 脚本中使用了“uniq -d -c file”,并且它有效。 在我的 MAC(安装了开发人员工具的 OS X 10.6.7)上,它似乎不起作用:

$ uniq -d -c testfile.txt 
usage: uniq [-c | -d | -u] [-i] [-f fields] [-s chars] [input [output]]

如果有人可以检查这一点,那就太好了。

I've used 'uniq -d -c file' in many shell scripts on linux machines, and it works.
On my MAC (OS X 10.6.7 with developer tools installed) it doesn't seems to work:

$ uniq -d -c testfile.txt 
usage: uniq [-c | -d | -u] [-i] [-f fields] [-s chars] [input [output]]

It would be nice if anyone could checks this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一萌ing 2024-11-09 04:01:05

嗯,它就在 Usage 消息中。 <代码>[ -c | -d | -u] 意味着您可以使用这些可能性中的一个,而不是两个。

由于 OSX 基于 BSD,您可以在此处查看,或者感谢 Ignacio ,更多 Apple 特定的此处

如果您想实现类似的输出,可以使用:

do_your_thing | uniq -c | grep -v '^ *1 '

它将删除所有计数为 1 的合并行。

Well, it's right there in the Usage message. [ -c | -d | -u] means you can use one of those possibilities, not two.

Since OSX is based on BSD, you can check that here or, thanks to Ignacio, the more Apple-specific one here.

If you want to achieve a similar output, you could use:

do_your_thing | uniq -c | grep -v '^ *1 '

which will strip out all those coalesced lines that have a count of one.

迟到的我 2024-11-09 04:01:05

您可以尝试这个 awk 解决方案

awk '{a[$0]++}END{for(i in a)if(a[i]>1){ print i ,a[i] } }' file

You can try this awk solution

awk '{a[$0]++}END{for(i in a)if(a[i]>1){ print i ,a[i] } }' file
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文