Використання Mac Terminal для вставки рядка в текстовий файл, який містить ім'я файлу


0

Я використовую термінал на 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 "Довжина хвилі" & & echo $ файл . wq)

Як це зробити? Чи потрібно мені зберегти ім'я файлу як змінної та надрукувати змінну? Або я можу використовувати модифікатор для перетворення імені файлу в рядок?

Будь ласка, дайте мені знати, чи можете ви щось придумати. Заздалегідь спасибі


Я не знаю, як зробити це по-своєму. Але ви можете зробити щось на зразок: echo "ім'я файлу довжиною хвилі"> a.out, а потім ім'я файлу cat >> a.out, а потім перемістити ім'я файлу a.out, замінивши ім'я файлу на позначене ім'я файлу.
jmh

Відповіді:


0

Як щодо наступного:

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

btw, що роблять ". wq" та "1i"? Я цього раніше не бачив ...


Це спрацювало чудово! Дякую!!! Період означає позначення кінця доданого тексту, wq пише і виходить, щоб файл 1i вставляв рядок перед першим рядком. 1 - номер рядка, я розшифровується як вставка
кравець
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.