从文件中读取变量并将其传递给 sed

从文件中读取变量并将其传递给 sed

我有两个文件:unknown.csv包含

aaa
bbb
ccc

另一个文件01.txt

;lksdjflk aaa lkdsfjdlk
aaa|xxlkjasd|
    |sadkl;k|lsa;dkl

当我将变量定义为j=aaa并尝试时

sed "s/${j}//g" 01.txt

它会找到aaa并删除它。但如果我尝试junknown.csvas中读取

j=$(sed '1q;d' unknown.csv)

并尝试

sed "s/${j}//g" 01.txt

什么都没发生。echo $j对于这两种情况,显示相同的结果aaa

目标是从unknow.csv文件中读取变量并用它来替换01.txt文件中的变量。

谢谢

答案1

您是否在Windows 上创建了unknown.csv 文件?如果是这样,它可能包含回车符。

尝试

(set -x; echo "$j" )

来显示 的价值$j

如果您只想要第 1 行并且末尾没有 '\r',请使用

sed -nr '1s/\r?$//p' unknown.csv

相关内容