我有两个文件: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
并删除它。但如果我尝试j
从unknown.csv
as中读取
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