Я пробую к списку vocab за Имитацию текста, которую мы переводим в классе. Я хочу заменить каждый пробел или символ табуляции с меткой абзаца так, чтобы каждое слово появилось на своей собственной строке. Кто-либо может дать мне команду sed и объяснить, чем случается так, что я делаю? Я все еще пытаюсь понять sed.
Все примеры, упомянутые выше для sed, повреждаются на одной платформе или другом. Ни один из них не работает с версией sed, поставленного на Mac.
Однако regex Perl работает то же над любой машиной с установленным Perl:
perl -pe 's/\s+/\n/g' file.txt
, Если Вы хотите сохранить вывод:
perl -pe 's/\s+/\n/g' file.txt > newfile.txt
, Если Вы хотите только уникальные случаи слов:
perl -pe 's/\s+/\n/g' file.txt | sort -u > newfile.txt
Опция 2
tr ' ' '\n' < testfile
echo $(cat testfile)
Вы могли использовать POSIX [[:blank:]]
для соответствия горизонтальному пробельному символу.
sed 's/[[:blank:]]\+/\n/g' file
или можно использовать [[:space:]]
вместо [[:blank:]]
также.
Пример:
$ echo 'this is a sentence' | sed 's/[[:blank:]]\+/\n/g'
this
is
a
sentence
Можно также сделать это с xargs
:
cat old | xargs -n1 > new
или
xargs -n1 < old > new