Может ли кто-нибудь помочь мне с этим? У меня есть куча текстовых файлов, которые я хочу изменить. Все они начинаются с чего-то другого, кроме обычного буквенного символа. Теперь я хочу удалить все до появления буквенного символа, чтобы они начинались со своего названия, сохраняя все остальное без изменений.
вот пример:
=================================================================================
TITLE OF SONG
Text text text
Text text text
ReFrain:
Text text text
written 16.08.1998
И я хочу, чтобы это выглядело так
TITLE OF SONG
Text text text
Text text text
ReFrain:
Text text text
written 16.08.1998
Я пытался сделать это так:
for f in *.txt; do sed 's/^.*[a-zA-Z]/^.[a-zA-Z]/g'; done
Это не работает
Я довольно новичок в этом, поэтому, пожалуйста, потерпите меня.
лучший Стеф
🤔 А знаете ли вы, что...
Bash обладает механизмами для работы с временем и датой, включая форматирование и арифметику.
Использование sed
$ sed 'N;N;s/\("\).*\n\([[:alpha:]]\+\)/\1\2/' input_file
"TITLE OF SONG
Text text text
Text text text
ReFrain:
Text text text
written 16.08.1998"
или
$ sed ':a;N;s/\("\)[^[:alpha:]]*\n\([[:alpha:]]\)/\1\2/;ba' input_file
"TITLE OF SONG
Text text text
Text text text
ReFrain:
Text text text
written 16.08.1998"