我有2个文件:A.txt,B.txt
这两个文件都包含字母NODE。
我想分别用A.txt和B.txt中的A_NODE和B_NODE替换每个文件中的NODE。
我知道有一个for循环和sed涉及,但无法弄清楚这个。有什么建议吗?
我在想:
for file in *; do sed -i 's/NODE/$file.NODE/g' file; done
答案 0 :(得分:0)
for file in *; do sed -i "s/NODE/$(basename -s .txt file)_NODE/g" file; done
"
)而不是单引号('
)启用bash变量插值(替换$
表达式)。$(...)
执行任意shell命令并插入结果。basename -s .txt
从文件名中删除目录部分和后缀.txt
。答案 1 :(得分:0)
谢谢@sapanoia:
这有效:
for file in *; do sed -i "s/NODE/$(basename -s .txt "$file")_NODE/g" $file; done