grep - 異なる数値セットを同じ数値セットに置き換える

grep - 異なる数値セットを同じ数値セットに置き換える

私はgrepに最初に触れて、次のことをする方法を知りたいです。この形式の約1000行を含むファイルがあります。

assign ( resid 105 and name CB ) ( resid 105 and name CA ) 4.1 0.8 0.8

assign ( resid 44 and name CB ) ( resid 44 and name CA ) 4.4 0.9 0.9 

最後の数字を次のように変更したいと思います。

4.6 2.6 2.6 ! 

私ができる方法はありますか?各行の数字は異なります。すべての数字を一貫して作成し、各行の末尾に「!」を追加しようとしています。

よろしくお願いします!

ベストアンサー1

grep一致を印刷し、ファイルのデータを印刷するために使用されます。データを交換するには、次のものが必要ですsed

sed 's|[0-9]\..*$|4.6 2.6 2.6 !|g' file

4.6 2.6 2.6 !これにより、数字が何であるかに関係なく、各行の末尾にあるすべての数字が置き換えられます。

ファイルをその場で編集するには:

sed -i 's|[0-9]\..*$|4.6 2.6 2.6 !|g' file

出力:

assign ( resid 105 and name CB ) ( resid 105 and name CA ) 4.6 2.6 2.6 !

assign ( resid 44 and name CB ) ( resid 44 and name CA ) 4.6 2.6 2.6 !

おすすめ記事