特定のパターンを見つけてその行で置き換えます。

特定のパターンを見つけてその行で置き換えます。

以下を含むファイルセットがあります。

    VIEW_NAME FOR COLUMN DNAME      ,
    VIEW_OWNER FOR COLUMN DCREATOR   ,
    OBJECT_NAME FOR COLUMN ONAME      ,
    OBJECT_SCHEMA FOR COLUMN OSCHEMA   

したがって、キーワードを見つけるたびに、その行のFOR COLUMN最初の文字と最後の文字を置き換える必要があります。出力は次のようにする必要があります

   DNAME FOR COLUMN VIEW_NAME,
   DCREATOR FOR COLUMN VIEW_OWNER,
   ONAME FOR COLUMN OBJECT_NAME

など。

答え1

使用awk:

awk '$2" "$3=="FOR COLUMN"{a=$1; $1=$4; $4=a}1' file
  • FORCOLUMNまず、2番目の()フィールドと3番目のフィールド()の値を比較します。
  • 一致するものがある場合は、最初の()フィールドと$14番目の($4)フィールドを置き換えます。

関連情報