我对此非常陌生,并已使用该网站来帮助我找到所需的答案。 我想替换多个目录中多个文件中的一行。但是我一直在努力做到这一点。
我创建了多个目录“ path_ {0..30}”,每个目录具有相同的“ input”文件,以及另一个文件“ opt_path_rx_00i.xyz”,其中i对应于该文件所在的目录(i = {0..30})。
我需要能够更改输入文件中的其中一行(第7行),以便它随输入文件所在的目录(path_ {0..30})而变化。该行是:
路径文件opt_path_rx_00i.xyz
其中i对应于文件所在的目录(i = {0..30})
但是,我正在努力使用sed来做到这一点。我设法更改各个目录中每个输入文件的行,但是我无法确保数字随目录而改变。相反,每个目录中的输入文件只需将第7行更改为:
路径文件opt_path_rx_00i.xyz
在这种情况下,其中i是字母i,而不是数字{0..30}。
为了更有意义,我将在下面展示我的工作。
对于{0..30}中的i 做 sed -i'7s /.*/ pathfile-opt_path_rx_00 $ i.xyz /'path_ $ i / input 完成
我想发生的是,例如在目录path_3中,输入文件中的第7行将是:
路径文件opt_path_rx_003.xyz
任何帮助将不胜感激
答案 0 :(得分:0)
您可以尝试用双引号
for i in {0..30}; do
sed -i "7s/.*/pathfile-opt_path_rx_00$i.xyz/" "path_$i/input"
done