Использование Mac Terminal для вставки строки в текстовый файл, содержащей имя файла

Использование Mac Terminal для вставки строки в текстовый файл, содержащей имя файла

Я использую Терминал на 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 $file. wq)
  • -ed -s $file < <(printf '%s\n' 1i "Длина волны"&& echo $файл. wq)

Как это сделать? Нужно ли мне сохранять имя файла как переменную и печатать переменную? Или можно использовать модификатор для преобразования имени файла в строку?

Пожалуйста, дайте мне знать, если вы что-нибудь придумаете. Спасибо заранее

решение1

А как насчет следующего:

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

Кстати, что делают ". wq" и "1i"? Я такого раньше не видел...

Связанный контент