我想替换名为&#34的输入文件中的一些值; i_f.xyz"使用perl,我从1到19。
在我的文件中,我想要更改" 6"进入" C"。
为此,我尝试了
perl -pi -e 's/6/C/g' ${i}_f.xyz
,以及其他一些组合,但它不起作用。
有人可以帮我吗?非常感谢:)
答案 0 :(得分:0)
您需要遍历占位符变量。使用for
。
#!/bin/bash
for ((i=1; i<=19; i++)); do
perl -pi -e 's/6/C/g' "${i}_f.xyz"
done
答案 1 :(得分:0)
更简单(不需要任何循环):
perl -i -pe 's/6/C/g' 1[0-9]_f.xyz [0-9]_f.xyz
(从1_f.xyz
到19_f.xyz
)
答案 2 :(得分:0)
非常感谢您的回答。
最后,我找到了一个解决方案:
#! /bin/bash
for i in *_f.xyz
do
perl -pi -e 's/6/C/g' *_f.xyz
perl -pi -e 's/1/H/g' *_f.xyz
done
但是现在我还有其他方法!我是bash脚本,编程语言和其他计算机科学方面的新手,所以谢谢! :)