以下は例です。 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/'