Unixはファイル内の変数(スラッシュを含む)を検索して削除します。

Unixはファイル内の変数(スラッシュを含む)を検索して削除します。

変数 "nt"(スラッシュを含む)を検索する必要があります。ファイルtext1からその内容を含むすべての行を削除します。

$ echo $nt
/u01/app/us1fa01_0/

$ cat text1
/u01/app/fa01/
/u01/app/us1fa01_0/
/u01/app/us1fa01_ps6/

予想出力 -

$ cat text1
/u01/app/fa01/
/u01/app/us1fa01_ps6/

次のコマンドを試しました。

  1. sed "/$nt/d" text1

    sed: -e expression #1, char 3: unknown command: `u'
    
  2. sed "|$nt|d" text1

    sed: -e expression #1, char 1: unknown command: `|'
    
  3. sed '\|"$nt"|d' text1

    /u01/app/fa01/
    /u01/app/us1fa01_0/
    /u01/app/us1fa01_ps6/
    

上記のコードのどれもうまくいかないようです。脱出口を探して

ベストアンサー1

そしてgrep:

grep -Fv -f <(echo "$nt") text1
  • -F- パターンを固定文字列のリストとして解釈する

  • -v- 一致しない行を選択するために一致の意味を反転します。

  • -f- ファイルからパターンを1行に1つずつインポートします。

出力:

/u01/app/fa01/
/u01/app/us1fa01_ps6/

おすすめ記事