我有兩個檔案
檔案1.txt
a
b
c
檔案2.txt
a
b
c
d
現在使用 grep 命令
grep -vf file1.txt file2.txt
會給我輸出 - >
d
但是使用它我無法將此結果保存在任何檔案file1或file2. 我想簡單地在任何一個檔案中覆寫這個結果。如何使用 grep 完成此操作?
uj5u.com熱心網友回復:
但是使用它我無法將此結果保存在檔案 file1 或 file2 中的任何一個中。我想簡單地在任何一個檔案中覆寫這個結果。如何使用 grep 完成此操作
您可以將輸出重定向到這樣的檔案:
grep -vf file1.txt file2.txt > tmp_file && mv tmp_file file1.txt
請注意,使用 grep 不能使用與輸出檔案相同的輸入檔案。要解決這個問題,您可以創建一個臨時檔案,然后將其重命名為 file1(2).txt
uj5u.com熱心網友回復:
如果sed是一個選項,您可以洗掉回圈中的匹配項并保存到位
while IFS= read -r line; do
sed -i "/$line/d" file2.txt
done < file1.txt
輸出
$ cat file2.txt
d
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/317369.html
