Text-Processing
通過另一個文本文件中的值更新一個文件的特定值
我有一個 ascii 格式的文本文件,想用保存在另一個文本文件中的值替換特定值。
考慮一個名稱為
text_1. . . . 50.asc
5 列 4 行的文件文件中的樣本數據
0.40007 0.544 0.6795 0.1545 -3.4028 0.61488 0.8471 0.7444 0.3537 0.0709 0.65128 0.6651 0.7948 0.9200 0.893 0.70952 0.5990 0.5061 0.610 0.893
我想用相同的值替換每個文件的(第 5 列,第 1 行)
Replacing_values.txt
。它有數據
1 2 3 4 . . . 50
預期結果(繼續所有文件)
0.40007 0.544 0.6795 0.1545 1 0.61488 0.8471 0.7444 0.3537 0.0709 0.65128 0.6651 0.7948 0.9200 0.893 0.70952 0.5990 0.5061 0.610 0.893
我試過這個
for i in `seq 50`; do x=`awk 'FNR==(1) {print $5}' *.asc`; y=`cat Replacing_values.txt`; echo $x==$y ;done
具有靈活的 GNU**
awk
**功能:gawk -i inplace -v repl="Replacing_values.txt" 'FNR==1{ getline $5 < repl }1' *.asc
-i inplace
- 允許就地修改輸入文件-v repl="Replacing_values.txt"
- 用替換值保存文件名的變數FNR==1
- 只考慮每個輸入文件的第一行getline $5 < repl
- 從文件中讀取下一條記錄repl
並將其分配給第 5 列$5