Robię to ręcznie i po prostu nie mogę tego dłużej robić - mam tysiące linii i myślę, że to jest praca dla sed lub awk.Jak przełączać/obracać co dwie linie za pomocą sed/awk?
Zasadniczo mamy plik tak:
A sentence X
A matching sentence Y
A sentence Z
A matching sentence N
Wzór ten trwa przez cały plik. Chcę odwrócić każde zdanie i pasujące zdanie, aby cały plik zakończył się w następujący sposób:
A matching sentence Y
A sentence X
A matching sentence N
A sentence Z
Jakieś wskazówki?
edit: przedłużenia początkowego problemu
Dimitre Radoulov przewidzianego wielką odpowiedź dla początkowego problemu. To jest przedłużenie głównego problemu - kilka dodatkowych szczegółów:
Załóżmy, że mamy zorganizowany plik (z powodu linii sed, którą dał mu Dimitre, plik jest zorganizowany). Jednak teraz chcę zorganizować plik alfabetycznie, ale tylko przy użyciu języka (angielskiego) drugiej linii.
watashi
me
annyonghaseyo
hello
dobroye utro!
Good morning!
Chciałbym uporządkować alfabetycznie zdania w języku angielskim (co drugie zdanie). Biorąc powyższe pod uwagę wejście, powinno to być wyjście:
dobroye utro!
Good morning!
annyonghaseyo
hello
watashi
me
Dzięki ... to działało jak złoto! Czy byłoby możliwe ponowne uporządkowanie alfabetyczne w oparciu o pierwszą literę pierwszej linii? Wygląda również na to, że rozmiar pliku podskoczył o około 30% po tym, być może dodano jakieś symbole? Nie widzę żadnej białej spacji itp. Usuwam wszystkie końcowe białe znaki za pomocą ":% s/\ s \ + $ //" w vim. edit: Zapisałem dane wyjściowe przez> output.txt, jeśli to ma znaczenie. –
@Google, czy mógłbyś opublikować większą próbkę danych wejściowych i przykład pożądanego wyniku (z uwzględnieniem ostatniego wymogu składania zamówienia)? –
Zaktualizowałem początkowy problem - mam nadzieję, że jest jasne. Jeśli nie daj mi znać. –