bash脚本:根据文本文件的位置更改文本文件中的某些行

时间:2014-06-04 17:37:38

标签: bash scripting

我在命名模式x1,x2,x3,x4 ...之后有一堆子文件夹,每个子文件夹都包含相同的script.sh文件。如果我想编写一个脚本,将该脚本文件的某些行(比如第2行)从x1更改为文件夹的名称,该怎么办?

例如,在文件夹x5中,script.sh的第二行应该是x5,而在文件夹x39中,script.sh的第二行应该是x39。

谢谢!

1 个答案:

答案 0 :(得分:1)

这个将子文件夹名称插入每个script.sh的第二行

find . -name script.sh | while read f
do
    dir=$(basename $(dirname "$f"))
    sed -i "2 i $dir" "$f"
done

要替换第二行,请使用c代替i

find . -name script.sh | while read f
do
    dir=$(basename $(dirname "$f"))
    sed -i "2 c $dir" "$f"
done