![](/img/trans.png)
[英]Replace values in fileA if values are in fileB using awk / sed
[英]Replace column values with certain row values for multiple files using awk/sed
我想要:
awk
或sed
將列值替換為某些行值 File1.csv:
A,B,C,D
E,F,G,H
File2.csv:
XYZ, 123
QWE, 456
要替換:
要獲得如下輸出:
A,XYZ,123,D
E,XYZ,123,D
從某種意義上說,必須對多個文件執行此操作,第二個文件如下所示:
R,W,O,P
S,D,I,L
將會改變如下...
R,QWE,456,P
S,QWE,456,L
讓我知道如何使用awk
和循環執行此操作
我嘗試如下,但它不起作用(在awk
):
awk 'FNR==NR{a[NR]=$1;next}{$2=a[FNR]}1' file2.csv file1.csv
我也嘗試在文件目錄中循環運行這個awk
:
for file in transmaster*.csv do echo $file awk 'FNR==NR{a[NR]=$1;next}{$2=a[FNR]}1' file2.csv file1.csv done
...但出現以下錯誤:
awk: fatal: cannot open file `file' for reading (No such file or directory)
您能否嘗試以下操作:
awk '
FNR==NR{
a[FNR,1]=$1
a[FNR,2]=$2
next
}
{
$2=a[FNR,1]
$3=a[FNR,2]
}
1' FS=", " file2.csv FS="," OFS="," file1.csv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.