如何在每个文件的开头添加注释,文件名为文件夹名称。需要对文件夹中的所有文件执行此操作
例如: 目录:CHAPTER01 文件:file1_1
示例内容:
cat file1_1
hello hello hello
预期输出:
cat file1_1
####Directory Name:Chapter01, File Name: file1_1
hello hello hello
答案 0 :(得分:1)
此未经测试的代码段应该有效。
for i in *
do
echo "Processing ${i}"
echo "Directory Name:$(pwd), File name:${i}" > ${i}.tmp
cat ${i} >> ${i}.tmp
echo "Created ${i}"
# mv ${i}.tmp ${i}
done
这将创建与您目录中的每个文件对应的.tmp
。注释掉的mv
将更改原始文件。如果您对结果满意,可以这样做。
答案 1 :(得分:0)
awk
救援!
$ awk 'FNR==1{n=split(FILENAME, a, "/");
print "# Dir name: " a[n-1] " File name: " a[n] > FILENAME}
{print > FILENAME}' path/to/files/*
作为附带好处,它将跳过空文件。它将打印直接的父目录"文件"和实际的文件名。你需要至少运行一个目录。
答案 2 :(得分:0)
使用编辑器更改当前文件。
dirname=${PWD##*/}
for file in inp*; do
ed -s "${file}" <<EOF >/dev/null
1
a
####Directory Name:${dirname}, File Name: ${file}
.
w
q
EOF
done