У меня есть файл, который содержит следующее:
TTITLE0=Dispenser (Unreleased, 1995)
TTITLE1=Pivotal (From The Icebreaker 7", 1998)
TTITLE2=Sucker & Dry (From the Sucker & Dry 7", 1997)
TTITLE3=Icebreakers (From The Icebreaker 7", 1998)
TTITLE4=And The Bit Just Chokes Them (From the Sucker & Dry 7", 1997)
TTITLE5=There's A Coldest Day In Every Year (From The Disruption 7", 1
TTITLE5=996)
TTITLE6=A Disruption In The Normal Swing Of Things (From The Disruptio
TTITLE6=n 7", 1996)
TTITLE7=Nostalgia (From the Makoto Split 7" Series w/Small Brown Bike,
TTITLE7= 2001)
TTITLE8=The Knowledgeable Hasbeens (From The Disruption 7", 1996)
TTITLE9=Polar (From The Icebreaker 7", 1998)
TTITLE10=A Disruption In Our Lines Of Influence (From The Disruption 7
TTITLE10=", 1996)
TTITLE11=I Thought There'd Be More Than This (Unreleased, 1996)
Как вы можете видеть, когда заголовок трека слишком длинный, заголовок добавляется в следующую строку, с TTITLE(samenumber)=
вфронт.Что мне нужно сделать, это сделать эти длинные заголовки одной строкой.
Мой план атаки состоял в том, чтобы определить совпадающее начало строк, добавить обратную косую черту в конце первой из двух, использовать
cut -d"=" -f 2
для удаления
TTITLE(num)=
, затем добавьте вторую строку к первой, используя знаменитый awk
однострочный
awk '/\\$/ { sub(/\\$/,""); getline t; print $0 t; next }; 1'
Тестирование, если явручную добавьте обратную косую черту и удалите TTITLE
с помощью cut
, оператор awk
работает отлично.С другой стороны, если у кого-то есть идея получше, пожалуйста, поделитесь!
Я бы предпочел использовать awk
или sed
из-за невозможности установить perl
или ruby
на машины, это будетоднако, если это единственное решение, я могу заставить его работать.