Washington George
Adams John
Jefferson Thomas
Madison James
期待される:
W. George
A. John
J. Thomas
M. James
sed
私は多くのGoogle検索で使用したいくつかのパターンを試しました。
\< # match start of word
\> # match end of word
's/[^a-z]././'
's/.....\>/./'
初めて登場した後、次の単語まで文字をつかむのに苦労しています。
ベストアンサー1
次のコマンドを使用できますsed
。
$ sed 's/^\(.\)[^ ]*/\1./' file
W. George
A. John
J. Thomas
M. James
またはもっと簡潔に言えば:
$ sed -E 's/^(.)[^ ]*/\1./' file
W. George
A. John
J. Thomas
M. James
できること:
- 最初の文字をキャプチャします
^(.)
。 - 次に、空白ではなく次の文字を選択します
[^ ]*
。 - 前のパターンをキャプチャされた文字と点で置き換えます。
\1
最初のキャプチャグループを表します(.)
。複数回キャプチャでき、各キャプチャは\1
最初のキャプチャ、\2
2番目のキャプチャなどの増分数で表示されます。-E
バックスラッシュエスケープフラグなしでパターンを括弧で囲み、キャプチャを実行します。