替换文件名的字符串并在同一个shell脚本中使用它

时间:2012-07-10 11:41:22

标签: shell

我有一组带有命名约定的文件bond_7.LEU.CA.1.dat bond_10.VAL.CB.1.dat .....并且还有其他一组文件以字符串距离开头而不是与相同的扩展名,即distance_7.LEU.CA.1.dat ....我试图在shell脚本中使用粘贴命令合并相应或后续的文件行

我打算这样做 paste bond_7.LEU.CA.1.dat distance_7.LEU.CA.1.dat> ../拉吉/ angle_dist_7.LEU.CA.dat

我尝试使用for循环并且更换文件名的字符串以访问相应的文件。

提前致谢,

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

#!/bin/bash
for FILE in bond* 
do
    paste "$FILE" "${FILE/bond/distance}" > "../raj/${FILE/bond/angle_dist}"
done
是吗?

PS。这种替换在纯sh中不起作用。您应该使用bashkshzsh或类似的那样。

PPS。要与sh一起使用,请将"${FILE/bond/distance}"替换为

`echo $FILE | sed 's/bond/distance/'`