我有这样的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] 举报,一经查实,本站将立刻删除。