我想知道是否有一种方法可以按某些字符(例如:
)分割行并根据该分割的一部分找到唯一的行。
例如,如果我通过管道输入以下内容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