Bash
如何更改文件中的第一列數據?
我有
.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
我能找到的最接近的相關問題是:文件中的相關數據。
awk
沒有能力像較新版本的sed
. 因此,您需要將輸出定向到不同的文件並從這個新創建的文件中取回,如下所示:awk '{$1="0.05"; print $0}' initc > initc.new && cat initc.new > initc
有趣的問題 - 您可以設置一個變數,然後使用 cut 來解析數據並在輸出前加上變數的內容 - 通過 awk。(也許存在內置函式可以做到這一點..儘管上述方法可行)。
x=$target cat $file | cut -d" " -f2- | awk '{print info,$0 }' info=$target