我无法在循环中使用sed命令替换txt文件中的字符串。我的问题描述和我使用的代码如下:
我有两个表如下。
表adminuser.txt
48 yimenju
50 dolwdow
表result.txt
yimenju 1
yimenju 2
dolwdow 3
我想将result.txt中的user_name替换为adminuser.txt中相应的user_id。我使用的linux bash脚本如下:
filename="temp.txt"
input="adminuser.txt"
while IFS= read -r line
do
echo $line > $filename
user_id="$(cut -d ' ' -f 1 $filename)"
user_name="$(cut -d ' ' -f 2 $filename)"
sed -i "s/$user_name/$user_id/g" result.txt
done < "$input"
我想要的输出如下:表result.txt
48 1
48 2
50 3
2条答案
按热度按时间bihw5rsg1#
您不需要在
bash
shell循环中嵌入外部工具/实用程序,如sed
,cut
,类似于:awk
解决方案将是正确的方法。t98cgbkg2#
可证明的成功: