Jak mogę zastąpić wszystkie nowe linie spacją oprócz ostatniej nowej linii. Mogę zastąpić wszystkie znaki nowej linii spacją, trale jak mogę to zrobić z pewnymi wyjątkami?
Jak mogę zastąpić wszystkie nowe linie spacją oprócz ostatniej nowej linii. Mogę zastąpić wszystkie znaki nowej linii spacją, trale jak mogę to zrobić z pewnymi wyjątkami?
Odpowiedzi:
Ponowne wdrożenie pomysłu vonbranda w Perlu, pod warunkiem, że plik jest wystarczająco mały:
perl -p00e 's/\n(?!\Z)/ /g' your_file
To zadziałało dla mnie.
tr '\n' ' ' < file_with_new_line | sed 's/\ $//g' > file_with_space
trpolecenie zastępuje wszystkie znaki nowej linii spacjami, a twoje sedpolecenie usuwa ostatnią spację. Powoduje to, że plik nie ma ostatniej nowej linii, więc nie jest to pytanie, o które pyta. Nawiasem mówiąc, nie ma sensu int używając gw sedpoleceniu. Ponieważ używasz $, może pasować tylko na końcu, nie gma sensu. Nie musisz też uciekać w przestrzeń, `` nie ma znaczenia.
-sI-dopcji wydaje się stworzony do tej sprawy.