
Я использую Терминал на 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"? Я такого раньше не видел...