ファイルの最初のデータ列を変更する方法は?

ファイルの最初のデータ列を変更する方法は?

.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

関連情報