GNU/Linux >> Linux の 問題 >  >> Linux

大文字の前にスペースを追加

sed の使用 、単語の前にスペースを入れたくない場合:

$ sed 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' file.in
Add Data
Test Something
Tell Me Who You Are

置換は、別の空白以外の文字の直後にある大文字を探し、2 つの間にスペースを挿入します。

WeAreATeam のように、複数の連続する大文字を含む文字列の場合 、これは We Are ATeam を生成します .これをソートするには、置換をもう一度実行します:

$ sed -e 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' \
      -e 's/\([^[:blank:]]\)\([[:upper:]]\)/\1 \2/g' file.in

Perl、後読みおよび先読みゼロ幅正規表現を使用:

$ perl -pe 's/(?<=\w)(?=[A-Z])/ /g'  file.in 

Tell Me Who You Are                    ## TellMeWhoYouAre
I Am A Regular Expression User         ## IAmARegulaExpressionUser

このバージョンでは、連続する大文字も分離されています。


sed -r -e "s/([^A-Z])([A-Z])/\1 \2/g"

大文字でない文字と大文字の文字の間にスペースを追加


Linux
  1. Linux – USBスティックの最初のパーティションの前にスペースをLuksキーとして使用しますか?

  2. Ubuntu 22.04 でスワップ領域を追加する方法

  3. UNIX / Linux:dd、mkswap、および swapon を使用してスワップ領域を追加する 2 つの方法

  1. Linux でスワップ領域を追加する方法

  2. 小文字が大文字の前になるように、LC_COLLATE でソート順を指定します。

  3. 名前にスペースが含まれている場合にグループに追加するには?

  1. Ubuntu18.04でスワップスペースを追加する方法

  2. 未割り当てから拡張にスペースを追加するにはどうすればよいですか?

  3. Debian 11 にスワップ領域を追加する方法