![替换文件名的字符串](https://linux22.com/image/155272/%E6%9B%BF%E6%8D%A2%E6%96%87%E4%BB%B6%E5%90%8D%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我需要将多个文件中“Genus”一词的每个实例替换为其各自的文件名。
尝试列出每个文件名,然后使用
for line in `cat list_ids`; do sed 's/Genus/$line/g' $line; done
但它返回“$line”而不是相应的文件名
答案1
您使用单引号阻止了变量扩展。使用双引号:
for line in `cat list_ids`; do sed "s/Genus/$line/g" $line; done
我需要将多个文件中“Genus”一词的每个实例替换为其各自的文件名。
尝试列出每个文件名,然后使用
for line in `cat list_ids`; do sed 's/Genus/$line/g' $line; done
但它返回“$line”而不是相应的文件名
您使用单引号阻止了变量扩展。使用双引号:
for line in `cat list_ids`; do sed "s/Genus/$line/g" $line; done