Załóżmy, że mam plik:
Plik 1:
PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc
File2 Chcę:
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI
Wiersze do konwersji pliku File1.
awk
sed
text-formatting
yisha
źródło
źródło
Odpowiedzi:
Za pomocą
tr
zamień każdy powtórzony znak spacji () na pojedynczy znak nowej linii (
\n
).Ale myślę, że chcesz czegoś takiego?
Z
awk
możemy zrobić:Łączy ze sobą tę samą pozycję złożonego numeru pola i
END
drukuje wynik, który byłby pierwszym wierszem w pierwszej kolumnie, drugim rzędem w drugiej kolumnie itp. Oczywiście plik wejściowy jest ograniczony do twojej pamięci.źródło
Możesz to po prostu zrobić poprzez grep. Domyślnie grep wypisuje dopasowanie w osobnej nowej linii.
LUB
źródło
grep
Możesz także użyć
fmt
polecenia:źródło
Z GNU datamash :
źródło
datamash
wydaje się najlepszym narzędziem do tego zadania, ale fascynujące, ile innych narzędzi można użyć!Możesz to również zrobić za pomocą
sed
:UWAGA: Nie obsługuje sytuacji, w której słowa zawierają spacje.
źródło
\n
nowej liniiUżywając
awk
, ustawiając separator pola wyjściowego (OFS
) jako separator rekordu (wiersza) (RS
):źródło
Za pomocą
for
pętli:źródło
Możesz także spróbować użyć
sed
Pamiętaj, że używam
@
jako separatora dla operacji podstawienia. Spowoduje to również utworzenie pliku kopii zapasowej. Jeśli nie potrzebujesz kopii zapasowej, usuń plik .bakźródło
Wersja Python:
Używa
<
przekierowania do standardowego wejścia Pythonainput.txt
i zapisujeoutput.txt
użycie>
przekierowania. Sama jednowierszowa odczytuje we wszystkich wierszach zstdin
listy ciągów, gdzie wszystkie spacje są zastępowane nowymi liniami , a my przebudowujemy cały tekst za pomocą.join()
funkcji.Alternatywnym podejściem pozwalającym uniknąć zastępowania wielu spacji w szeregu znakami nowej linii jest
.split()
podział wiersza na listę słów. W ten sposób możemy zapewnić, że każde słowo jest oddzielone tylko jedną nową liniąźródło
Używając
xargs
(skradziony z odpowiedzi souravc ):Lub jeśli konieczne jest jakiekolwiek niewielkie formatowanie, użyj
printf
ciągów formatujących, jakkolwiek mogą być potrzebne:źródło
Moim rozwiązaniem byłoby:
źródło
źródło