Muszę zastąpić wszystkie białe spacje w tekście przecinkami. Obecnie używam tej linii, ale to nie działa: otrzymuję jako wynik plik tekstowy, który jest dokładnie taki sam jak oryginalny:
sed 's/[:blank:]+/,/g' orig.txt > modified.txt
dzięki
text-processing
aneuryzm
źródło
źródło
Odpowiedzi:
Z
sed
:Lub z
perl
:Edycja: Aby wykluczyć nowe wiersze w perlu, możesz użyć podwójnego negatywu
's/[^\S\n]+/,/g'
lub dopasować tylko do wybranych białych znaków spacji's/[ \t\r\f]+/,/g'
.źródło
+
operatora w sed, właśnie zaktualizowałem swoją odpowiedź. Newlines są białymi znakami w Perlu, więc będziesz musiał ręcznie wykonać klasę białych znaków, jeśli nie chcesz jej uwzględniać. Do tego dodałem dwa rozwiązania.Używanie
tr
:Zastąpi wszelkie poziome białe znaki przecinkiem. Wszelkie powtarzające się białe znaki zostaną zastąpione tylko jednym przecinkiem.
źródło
Tutaj nazwa pliku to Serwery .. Zawiera poniższą treść ..
Jeśli użyjemy powyższego polecenia, możemy uzyskać poniższe dane wyjściowe.
źródło