Shell

僅基於部分查找唯一行

  • January 14, 2016

我想知道是否有一種方法可以按某個字元(例如:)拆分行並根據此拆分的一部分找到唯一行。

例如,如果我通過管道輸入以下內容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

多謝你們

這可以通過幾個常見的實用程序輕鬆完成:

cut -d : -f 1 input.txt | uniq
  • cut從輸入文件中提取欄位。-d表示分隔符(在本例中為 a :),並-f 1表示提取第一個欄位。
  • uniq從輸入中刪除重複的相鄰行

由於我所有的結果都具有相同的格式(文件在src/目錄中),我可以使用以下命令:

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

引用自:https://unix.stackexchange.com/questions/255229