Linux
尋找一個棘手的單行來獲得 awk 輸出的差異
可以說我有兩個文件,如下所示:
file1 a 23 b 34 c 47 file2 a justin_beiber_sucks b segmentation fault c jackson d nop
現在我想要的是獲得兩個文件的第一列的差異。我現在正在這樣做
$cat file1 awk '{print $1}'> f1 $cat file2 awk '{print $1}'> f2 $diff -u f1 f2
但這種方法感覺遲鈍。那裡有什麼棘手的方法嗎?
問題是我總是將
pipe
s 視為一維的東西,但在這裡它是二維的。我的意思是 diff 的輸入必須同時來自兩個不同的來源。起點可能是 awk 腳本將讀取這兩個文件,進行過濾並將結果保存在臨時關聯數組中,接下來它將呼叫 diff 並提供其輸入。
嘗試:
diff -u <(awk '{print $1}' file-one) <(awk '{print $1}' file-two)
很有可能
join
會做你想做的事:join <(sort file1) <(sort file2)
但是由於您沒有說出您真正想要完成的工作,因此很難確定哪些選項可能是合適的。