我有這樣的代碼如何使用awk比較Linux的多個文件中的兩列
[[email protected] ]$ awk '{print $1}' awk1.txt awk2.txt
line1a
line2a
file1a
file2a
圖中顯示了這兩個文件
我如何才能找到$1(of file 1)
和$1(of file2)
的ccolumns,分別
我有這樣的代碼如何使用awk比較Linux的多個文件中的兩列
[[email protected] ]$ awk '{print $1}' awk1.txt awk2.txt
line1a
line2a
file1a
file2a
圖中顯示了這兩個文件
我如何才能找到$1(of file 1)
和$1(of file2)
的ccolumns,分別
由於根據上面的意見,三個或多個文件,設置類似的條件語句:
FILENAME == ARGV[1]
例如:
awk 'FILENAME == ARGV[1] { print $1 } FILENAME == ARGV[2] { print $1 } FILENAME == ARGV[3] { print $1 }' file1.txt file2.txt file3.txt
或者,如果你有文件的水珠:
變化的條件語句到:
FILENAME == "file1.txt"
例如:
awk 'FILENAME == "file1.txt" { print $1 } FILENAME == "file2.txt" { print $1 } FILENAME == "file3.txt" { print $1 }' *.txt
您可能還需要閱讀更多有關變量ARGC and ARGV。請讓我知道是否需要更多解釋。乾杯。
感謝哥們,我現在明白了 – user175386049
我不確定你確實需要什麼。 也許你需要預定義變量:FILENAME
awk '{print $1,FILENAME}' awk1.txt awk2.txt
這上面的命令將輸出:
line1a awk1.txt
line2a awk1.txt
file1a awk2.txt
file2a awk2.txt
你的問題實在是相當不明確的。請[編輯](http://stackoverflow.com/posts/14250405/edit)您的問題包括一些示例輸入(即「awk1.txt」的內容和「awk2.txt」的內容是什麼? ),並請包括一些預期產出。另外,你如何定義「比較」一詞?分別打印file1第一列和第二列file2的最簡單方法是:'awk'FNR == NR {print $ 1;下一個} {打印$ 1}'file1 file2'。但這不是你想要做的。你究竟想在這裏做什麼? – Steve
@STEVE,那'FNR = NR'我在找什麼。我想知道如何區分diff文件列。但我怎麼做,如果我有三個文件 – user175386049
我已經添加了一個答案,但請參閱鏈接。有關於如何使用循環處理多個文件的信息。但是,如果您發現自己打開大量文件句柄,則可能有更好的方法來解決您的問題。 HTH。 – Steve