Mam plik taki jak poniżej:
1234
ABCD
EFGH
Chciałbym przekonwertować to na następujące:
2341
BCDA
FGHE
Rzeczywisty plik ma 4000 słów, więc chciałbym to zrobić w wydajny sposób. Próbowałem użyć polecenia cut -c 2-4,1 file.txt
, ale daje on dokładnie takie same dane wyjściowe jak dane wejściowe. Myślałem, że mogę użyć 3 różnych poleceń:
cut -c 1 file.txt > temp1.txt
cut -c 2-4 file.txt > temp2.txt
// combine the two with paste or pr
... ale wolałbym jedno polecenie, ponieważ muszę je uruchomić kilka razy z niewielkimi modyfikacjami, więc wykonanie jednego polecenia jest mniej podatne na błędy niż uruchomienie 3 poleceń za każdym razem.
Czy jest jakiś sposób na połączenie 2 ciętych instrukcji w jedno? Coś jak:
cut -c 1 file.txt | pr (cut -c 2-4 file.txt)
Czy jest na to lepszy sposób?
text-processing
cut
Rozsądny
źródło
źródło
-d ''
zamiast--delimiters=''
do ponownego użycia znaków z listy zamiast JOTJeśli używasz bash, użyj indeksowania ciągów rozwijania parametrów :
źródło
Możesz zmienić separator za pomocą „-F” stosownie do swoich danych i dowolnie uporządkować kolejność pól.
źródło
Oto jeden sposób z
perl
:Automatyczne dzielenie na granicach liter, obracaj jeden w lewo i drukuj.
źródło
Znalazłem alternatywę w sposób skryptowy:
Skrypt odcina łańcuchy w osobnych plikach. Następnie dołącz do nowego pliku (file4.txt) I w końcu usuwa zapasowe pliki.
roztwór Llua jest bardziej czysty jak na mój gust.
źródło
Czy próbowałeś rev?
~$ cat filename | rev
źródło