Csh

如何在 Cshell 中讀取和替換兩個參數文件?

  • January 31, 2020

我正在嘗試製作一個自動替換文本文件中單詞的腳本。

In a.v,
BIRA_0     0
BIRA_1     400
BIRA_2     800
BIRA_3     C00
...

in b.v,
BIRA_0[25:0]
BIRA_0[95:26]
BIRA_0[125:96]
BIRA_0[255:125]
BIRA_1[5:0]
BIRA_1[25:6]
...


Result,

0[25:0]
0[95:26]
0[125:96]
0[255:125]
400[5:0]
400[25:6]
...

當然,我可以使用

$sed "s/BIRA_0/0/" b.v > result

但問題是該文件a.v包含許多這樣的替換案例,所以我想通過 Cshell 腳本自動製作。

只要a.v不包含任何正則表達式特殊字元,那麼無論您使用的外殼如何,您都可以執行類似的操作

awk '{printf "s/^%s/%s/\n", $1, $2}' a.v | sed -f - b.v

或者,單獨使用 awk:

awk 'NR==FNR {a[$1]=$2; next} {print a[$1] "[" $2}' a.v FS="[" b.v

引用自:https://unix.stackexchange.com/questions/565040