テキストファイルの名前リストで初期名を省略します。

テキストファイルの名前リストで初期名を省略します。
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最初のキャプチャ、\22番目のキャプチャなどの増分数で表示されます。-Eバックスラッシュエスケープフラグなしでパターンを括弧で囲み、キャプチャを実行します。

おすすめ記事