Lo he hecho con el siguiente método para el ejemplo anterior
sed "s/file1.txt/&\n|__newfile/g" example.txt
salida
some text...
[fencetitle]
----
.
├── file1.txt
|__newfile
└── test
└── file2.txt
$ awk -F'|' '/Sangamithra/ {print $3 "|" $2 "|" $1}' input.txt
Sangamithra|First|Teju
(Обратите внимание, что ваша вторая строка в желаемом выводе нигде не появляется во входном файле)
Пояснение
Флаг -F
означает, что awk видит |
в данном случае как разделитель полей.
Секция /Sangamithra/
означает, что на выходе будут только входные строки, содержащие этот шаблон.
раздел {print $3 "|" $2 "|" $1}
является основным сценарием. Это распечатывает третье, второе и первое поля ввода (в указанном порядке ), разделенные |
символами.