微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Uniq,但只在部分string

我有这样的string:

import abcdfClass1 import abgdfClass2 import abhdfClass3 import zyxdfClass4 import zyxdfClass5 import zyxdfClass6

我想要得到string的第一部分的所有独特的事件。 更具体地说,直到第三期。 所以我这样做:

grep "import curam" -hr --include *.java | sort | gawk -F "." '{print $1"."$2"."$3}' | uniq

这给了我:

import abc import abg import abh import zyx

但是,我想要得到完整的string的第一次出现时,string,直到第三个时期是唯一的。 所以,我想得到:

如何通过使用Java的Windows / cygwin执行unix命令

Cygwin看到一个文件,Windows不能 – 我想从python访问这个文件

cygwin bash中的sucessfull克隆后,本地Git存储库不存在

帮助在Windows上使用g ++进行构build

cygwin c ++程序首先在单独的cmd中运行,然后在cygwinterminal中运行

import abcdfClass1 import abgdfClass2 import abhdfClass3 import zyxdfClass4

有任何想法吗?

通过Cygwin / X在Windows 7上通过RGBA工作的X11窗口透明度?

PhantomJS:cygwin返回与Windows cmd不同的JSdate

我如何开始使用Cygwin进行C#开发?

shell脚本过滤du,并通过子文件夹中的文件内的string查找

VS代码 – Cygwin作为集成terminal

只需跟踪独特的第二个领域:

awk -F '[ .]' '!uniq[$2]++' file

也就是说,将字段分隔符设置为空格或点。 这样,第二个字段总是以点分隔的名称中的第一个单词:

$ awk -F '[ .]' '{print $2}' file a a a z z z

然后,只要检查他们第一次出现:

$ awk -F '[ .]' '!uniq[$2]++' file import abcdfClass1 import zyxdfClass4

String之间的前三个标记有一些微妙的变化,所以我只需要[。]不能做空间。 我更新了这个问题。

所以如果你有:

import abcdfClass1 import abgdfClass2 import abhdfClass3 import zyxdfClass4 import zyxdfClass5 import zyxdfClass6

那么你需要拆分第二个. – 准备好的字段,并检查前三个切片何时重复。 这可以使用与上面相同的方法完成,只有使用split() ,然后使用三个第一片来检查唯一性:

$ awk '{split($2,a,".")} !uniq[a[1] a[2] a[3]]++' file import abcdfClass1 import abgdfClass2 import abhdfClass3 import zyxdfClass4

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐