.data
列形式の数値テーブルを含むファイルがあります。
m x y z vx vy vz
タブ区切り、深さ2000。ファイル名はinitc.data
。
ファイルの最初の列全体の値を変更したいと思います。
次のコマンドを試してみました。
awk -F '$1 == 0.05' initc
そして
awk -F '{print $1, "0.05"}' initc
ファイルを開き、最初の列に値を割り当てます0.05
。すべて開かれawk
ますが、実行も出力も生成されません。
関連データの例は次のとおりです。
0.500000 0.500000 0.500000 0.500000 -1.500000 -1.500000 -1.500000
0.500000 0.567564 0.543674 0.536446 -1.500000 -1.500000 -1.500000
0.500000 0.454538 0.492286 0.501853 -1.500000 -1.500000 -1.500000
0.500000 0.574283 0.367439 0.668929 -1.500000 -1.500000 -1.500000
私が見つけることができる最も関連性の高い質問は次のとおりです。ファイルの関連データ。
答え1
awk
最新バージョンのように使用できませんsed
。したがって、出力を別のファイルとして指定し、次のように新しく作成されたファイルからインポートする必要があります。
awk '{$1="0.05"; print $0}' initc > initc.new && cat initc.new > initc
答え2
興味深い質問です。変数を設定してからcutを使用してデータを解析し、awkを介して変数の内容を出力の前に追加できます。 (おそらく組み込み関数はこれを行うことができます...上記の方法が機能する可能性があります。)
x=$target
cat $file | cut -d" " -f2- | awk '{print info,$0 }' info=$target