使用bash脚本,如何在每个文件的开头添加注释到文件夹中的所有文件

时间:2015-12-12 04:44:21

标签: bash file shell unix

如何在每个文件的开头添加注释,文件名为文件夹名称。需要对文件夹中的所有文件执行此操作

例如: 目录:CHAPTER01 文件:file1_1

示例内容:

cat file1_1
hello hello hello

预期输出:

cat file1_1
####Directory Name:Chapter01, File Name: file1_1
hello hello hello

3 个答案:

答案 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