ну, я думаю, вопрос не так ясен.почему в вашем демонстрационном вводе, после "-", текст был таким:
55555 - SubSectionName E
, но в ожидаемом выходе, это превратилось в:
55555,SubSectionNameE
все пробелы были удалены, это нормально, но почему "The" также был удален?есть ли шаблон для «the»?
Я написал awk oneliner, он удаляет все пробелы в выводе, но оставляя эти «The» там, вы можете изменить его, чтобы получить правильный вывод, который вам нужен.
awk -F' and ' -vOFS="," 'NF>1{s=$1;t=$2;next;}$1{gsub(/\s+/,"");gsub(/-/,",");print s,t,$0} ' input
проверка на вашем примере ввода:
kent$ cat v
SectionName1 and TitleName1
1111 - The SubSectionName A
222 - The SubSectionName B
3333 - The SubSectionName C
SectionName2 and TitleName2
444 - The SubSectionName D
55555 - The SubSectionName E
66 - The SubSectionName F
kent$ awk -F' and ' -vOFS="," 'NF>1{s=$1;t=$2;next;}$1{gsub(/\s+/,"");gsub(/-/,",");print s,t,$0} ' v
SectionName1,TitleName1,1111,TheSubSectionNameA
SectionName1,TitleName1,222,TheSubSectionNameB
SectionName1,TitleName1,3333,TheSubSectionNameC
SectionName2,TitleName2,444,TheSubSectionNameD
SectionName2,TitleName2,55555,TheSubSectionNameE
SectionName2,TitleName2,66,TheSubSectionNameF