我有一個帶有鍵值對的 CSV 檔案(File1)
Key1,Value1
Key2,Value2
我有第二個檔案(File2),它不是我擁有關鍵資料(Key1,Key2..etc)的結構化資料。我必須在下面的示例中找到關鍵資料,然后是常量 (A),然后是要替換的值。
替換前的file2內容
Dummy1 Key1 A Value-Old1 BB C
D2 D3 4 Key2 A Value-Old2 BB C
File2內容替換后
Dummy1 Key1 A Value1 BB C
D2 D3 4 Key2 A Value2 BB C
任何輸入都非常感謝通過 awk 或 sed 實作這一點
我按照此鏈接找到了某個位置,但我的替換檔案是非結構化檔案,而不是 CSV 檔案,如下所示 https://unix.stackexchange.com/questions/126485/replacing-the-values-in-one-file -with-the-values-in-another-file-in-bash
uj5u.com熱心網友回復:
如果您不介意在輸出中丟失一些空格字符,那么您可以使用一些awk:
awk -F ',' '
NR == FNR { arr[$1] = $2; next }
FNR == 1 { FS = " "; $0 = $0 }
{
for (i = 1; i <= NF-2; i )
if ($i in arr && $(i 1) == "A") {
$(i 2) = arr[$i]
break
}
}
1
' file1.csv file2.txt
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/532738.html
標籤:重击Unix脚本
上一篇:“sh-c”有什么作用?
