次のテキストファイルを参照してください。
/home/user1/dir1
/home/user1/dir2
/home/user1/
/home/user1/dir1/dir11
目標は "/home/user1/" だけで他に何もない行を削除することですので、最終結果は次のようになります。
/home/user1/dir1
/home/user1/dir2
/home/user1/dir1/dir11
以下のコードを試しましたが、/home/user1/を含むすべての行が削除されました。何をすべきか知っていますか?
grep -v "/home/user1/" /home/user1/input.txt > tmpfile && mv tmpfile /home/user1/output.txt
ベストアンサー1
アンカーポイントを使用して、線の開始と終了を表示します(^
開始と$
終了)。その後、状況は次のようになります。
$ grep -v '^/home/user1/$' file
/home/user1/dir1
/home/user1/dir2
/home/user1/dir1/dir11
または、次の-x
オプションを使用できます。
-x, --line-regexp match only whole lines
それから
$ grep -vx '/home/user1/' file
/home/user1/dir1
/home/user1/dir2
/home/user1/dir1/dir11
あなたのgrep
コマンドは予期されたタスクを実行しています。一致するすべての行を見つけます。含む /home/user1/
、正確に一致しません。