使用 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」有什麼作用?我以前沒看過...

相關內容