正規表現区切り文字でファイル行を分割する

正規表現区切り文字でファイル行を分割する

\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

\WPerl(式が派生した言語)を使用して、すべての一致を改行文字に置き換えます\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

\WPCREを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:]改行付き。

関連情報