\W
英数字ではなく正規表現を使用して入力ファイルの各行を分割し、出力ファイルのすべての分割チャンクを次のように印刷したいと思います。
入力ファイル:
www.wifi.in.ua
YI-HondBrychka
結果ファイル:
www
wifi
in
ua
YI
HondBrynchka
答え1
-o
一致する文字列のみを印刷するには、フラグを使用してみてください。
$ cat <<HEREDOC | grep -Po '\w+'
www.wifi.in.ua
YI-HondBrychka
HEREDOC
www
wifi
in
ua
YI
HondBrychka
答え2
\W
Perl(式が派生した言語)を使用して、すべての一致を改行文字に置き換えます\W
。
$ perl -pe '$_ =~ s/\W/\n/g' <file
www
wifi
in
ua
YI
HondBrychka
あるいは、質問の実際の表現とより一致します。
$ perl -pe '$_ = join("\n", split(/\W/)) . "\n"' <file
www
wifi
in
ua
YI
HondBrychka
\W
PCREをEREで表現[^[:alnum:]]
し、GNUを使用してくださいawk
。
awk -v RS='[^[:alnum:]]' 1 file
入力レコード区切り文字を任意の文字に設定する略語1
です。これにより、レコードが別々の行に印刷されます。'{ print }'
\W
またはGNUを使用してくださいsed
:
sed 's/[^[:alnum:]]/\n/g' file
それでtr
、
$ tr -c '[:alnum:]' '\n' <file
www
wifi
in
ua
YI
HondBrychka
-c
すべての文字を置き換える場所いいえ[:alnum:]
改行付き。