文で8より小さい単語や数字を置き換えるには、awkまたはsedを使用してください。

文で8より小さい単語や数字を置き換えるには、awkまたはsedを使用してください。

以下は例です。 9番目の列の値が8より小さい場合はそれを置き換える必要があり、そうでない場合はsedまたはawk関数を使用して終了または無視します。

) in datadbs extent size 16 next size 4 lock mode row;

以下のawk関数を使用すると、9列に必要な値だけが出力されますが、それでも文構造は維持したいと思います。

echo ") in datadbs extent size 16 next size 4 lock mode row;" | 
 awk '{if ($9 < 8 ) print 8;}'

出力:

8

私が望むものは次のとおりです。

) in datadbs extent size 16 next size 8 lock mode row;

答え1

私は知らないようにawkパラメータを変更し、すべてを印刷することをお勧めします。

echo ") in datadbs extent size 16 next size 4 lock mode row;" | 
  awk '{if ($9 < 8 ) $9 = 8; print;}'

答え2

sed -e 's/\S\+/&\n/9; s/ [0-7]\n/ 8/'

答え3

sed選択する:

s=") in datadbs extent size 16 next size 4 lock mode row;"
echo $s | sed 's/size [0-7] lock/size 8 lock/'

関連情報