Dies könnte, was Sie suchen:
$ sed -E 's/ {3,}/ | /; s/ */ /g' file
blue chile | green morning dawn
red turkey | pink morning dawn
white south africa | red evening midst & more
Das obige setzt voraus, dass Ihre 2 "Felder" durch 3 oder mehr Leerzeichen getrennt sind, wie in Ihrer Posted-Eingabe. Es funktioniert in GNU oder OSX sed für -E
, um EREs zu aktivieren.
Andernfalls, wenn die Felder wirklich Breite festgelegt sind, wie es in Ihrer geschriebenen Eingabe erscheint dann für eine verbesserte Robustheit mit GNU awk für FIELDWIDTHS betrachten:
$ awk -v FIELDWIDTHS='25 8 999' -v OFS=' | ' '{print $1, $2, $3}' file
blue chile | green | morning dawn
red turkey | pink | morning dawn
white south africa | red | evening midst & more
$ awk -v FIELDWIDTHS='25 8 999' -v OFS=' | ' '{print $1, $2 $3}' file
blue chile | green morning dawn
red turkey | pink morning dawn
white south africa | red evening midst & more
$ awk -v FIELDWIDTHS='25 8 999' -v OFS=' | ' '{$0 = $1 OFS $2 $3; gsub(/ +/," ")} 1' file
blue chile | green morning dawn
red turkey | pink morning dawn
white south africa | red evening midst & more
Sie sehen feste Breite zu mir. Was lässt dich sagen, dass sie es nicht sind? –
Ja, sie sind feste Breite! Nur realisiert – NinjaGaiden