Unix Terminal - 各バイナリ/三項を1行に印刷する方法は?

Unix Terminal - 各バイナリ/三項を1行に印刷する方法は?

Unix端末を使用して1行の各タプルを印刷するには?句読点は「単語」と見なされます。

たとえば、次のように入力する必要がある場合:

This is ! line .

This is ! second line .

各タプルを検索すると、出力は次のようになります。

This is
is !
! line
line .

This is
is !
! second
second line
line .

各トリプルを検索すると、出力は次のようになります。

This is !
is ! line
! line .

this is !
is ! second
! second line
second line .

注文する

grep -Eio '[a-z!.]+ [a-z!.]+'

商品を返す

This is
! line
This is
! second
line .

これは近いですが、私が必要とするわけではありません。

ベストアンサー1

Perlをこのように使うことができます

2タプル

perl -lne 'while(/(\S+\s+\S*){1}/){print $&;s/\S+\s+//}' file

This is
is !
! line
line .
This is
is !
! second
second line
line .

六角形

perl -lne 'while(/(\S+\s+\S*){2}/){print $&;s/\S+\s+//}' file

This is !
is ! line
! line .
This is !
is ! second
! second line
second line .

中かっこ内の数字を目的の行ごとの数字(-1)に変更します。

おすすめ記事