使用 Mac 终端将一行插入包含文件名的文本文件中

使用 Mac 终端将一行插入包含文件名的文本文件中

我在 Mac 上使用终端,我有一系列文本文件,每个文件都包含如下数据:

300.50 253.50
301.00 156.26
301.50 191.57

我想为列插入一个标题,其中第一列标记为“波长”,第二列标记为文件名,以使其看起来像这样(间距无关紧要,只要它由空格划定即可):

Wavelength Filename
300.50 253.50
301.00 156.26
301.50 191.57

我有一个循环,将“波长”插入到每个文件中,效果很好,但添加文件名给我带来了一些麻烦。代码如下:

for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "Wavelength" . wq)   
done

我已尝试使用粗体显示更改的部分来执行以下操作:

  • -ed -s $file < <(printf '%s\n' 1i "波长"&& $文件.wq)
  • -ed -s $file < <(printf '%s\n' 1i "波长"&& printf $文件.wq)
  • -ed -s $file < <(printf '%s\n' 1i "波长"&& 回显 $文件.wq)

我该怎么做?我需要将文件名保存为变量并打印该变量吗?或者我可以使用修饰符将文件名转换为字符串吗?

如果您能想到什么,请告诉我。提前谢谢

答案1

那么以下内容呢:

for file in *.txt
do
  ed -s $file < <(printf '%s\n' 1i "Wavelength $file" . wq)
done

顺便问一下,“.wq”和“1i”起什么作用?我以前没见过……

相关内容