仅根据一个部分查找唯一的行

仅根据一个部分查找唯一的行

我想知道是否有一种方法可以按某些字符(例如:)分割行并根据该分割的一部分找到唯一的行。

例如,如果我通过管道输入以下内容stdin

file1: line 4
file1: line 5
file1: line 6
file2: line 1
file2: line 2
file2: line 1
file53: line 67
file24: line 412

有没有一种方法可以让每个文件只提取一行,例如:

file1: line 4
file2: line 1
file53: line 67
file24: line 412

或者甚至更好:

file1
file2
file53
file24

多谢你们

答案1

这可以通过几个常见的实用程序轻松完成:

cut -d : -f 1 input.txt | uniq
  • cut从输入文件中提取字段。-d表示分隔符(在本例中为 a :),并-f 1表示提取第一个字段。
  • uniq从输入中删除重复的相邻行

答案2

由于我的所有结果都具有相同的格式(文件位于目录中src/),我可以使用以下命令:

cat input.txt | tr ':' '\n' | grep 'src/' | uniq

相关内容