Diff
在 2 個文件中獲取不匹配的條目
問題..{ 我的使用者在 /home 中有主目錄,因此我可以使用以下命令獲取符合我的條件的使用者列表。
第 1 步:獲取使用者列表
du -h --max-depth=1 /home 2>/dev/null | egrep -v '(!G|.cp)' | awk -F"/" '{print $NF}'
注意:擴展 grep 模式是我的要求,因為主目錄包含需要反向 grep 的額外文件,而且 !G 表示我需要數據小於 1G 的部分使用者列表。
第 2 步:獲取已暫停使用者的列表
ls -al /somedir/ | grep -v 'lock'
第 3 步:需要比較文件 1 中不存在於文件 2 中的 2 個列表並獲取行
所以我被困在這一步,我嘗試了 uniq & diff 命令,但我沒有得到符合我標準的使用者列表。
PS:應該比較兩個文件的命令不應該將這些文件逐行比較,而是整體比較,因此文件 1 中的任何行和文件 2 中缺失的任何行都應該是我的輸出。
好的,我研究了一下,我正在尋找的解決方案是這個
comm -23 <(sort File1) <(sort File2)
使用括號將兩個命令組合為一個:
( du -h --max-depth=1 /home 2>/dev/null | egrep -v '(!G|.cp)' | awk -F"/" '{print $NF}' ; ls -al /somedir/ | grep -v 'lock' ; ) | sort | uniq
括號中的兩個命令的輸出被連接起來,並顯示為單個程序(子shell)的輸出。
PS:您
/home
在目錄中的第一個命令輸出…