我很擅长使用bash。
我有几百个文件,每个文件都有QP1172,QP1474,QP9926等。我需要文件的名称在文件的第一行(例如,QP1172将在文件QP1172的第1行。 TXT)。
有谁知道我怎么做到这一点?谢谢!
答案 0 :(得分:2)
您可以执行类似
的操作for f in QP????.txt; do echo $f | cat - $f >$f.withname; done
创建新文件QP1172.txt.withname
等,然后在检查完所有内容后,用它们替换旧文件。
(cat
此处将名称(在标准输入上给出)与每个文件的文件内容连接起来。)
ADDED:为了让新版本更容易获得正确的名称,可能更容易让它们具有相同的名称,但在另一个目录中。
mkdir withname
for f in QP????.txt; do echo $f | cat - $f >withname/$f; done
答案 1 :(得分:1)
您可以使用sed
在开头插入一行:
for f in QP*; do
sed -i "1i$f" "$f"
done
1i$f
表示"在第1行和第34行之前插入包含值$f
的行。