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

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

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

1 ответ1

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .