このエントリーをはてなブックマークに追加  
 Yahoo!ブックマークに登録

指定した文字数毎に文字を挿入したい

文字列を指定した文字間隔で文字を挿入したい場合、sedを使うと簡単に実現することができます。

関連記事

指定した文字数毎に文字を挿入する

以下に簡単な例を記します。

$ echo "abcdefghijklmnopqrstuvwxyz" | sed -e 's/\(..\)/\1%/g'
ab%cd%ef%gh%ij%kl%mn%op%qr%st%uv%wx%yz%

aからzまでの文字列を2文字単位にし、後方に%をつけた例です。

かっこ\( \)で囲むことにより、後方参照することができます。
1つ目なので\1と記述することにより、かっこ内の文字列が表示されます。
上記では、ドットが2つなので2文字を意味します。

指定する文字数が多い場合

指定する文字数が多い場合は、ドットを続けるものしんどいですよね。
間違いが多くなりますしね。
その場合は、以下のように記述することができます。

.{数字}

実際に実行した例を以下に記します。
例では5文字ごとに分け先頭に!を挿入しています。

$ echo "abcdefghijklmnopqrstuvwxyz" | sed -e 's/\(.\{5\}\)/!\1/g'
!abcde!fghij!klmno!pqrst!uvwxyz

尚、{}もエスケープ(\)が必要です。

以上、sedをつかった指定した文字数毎に文字を挿入したい場合の記述例でした。


スポンサーリンク


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-12-07 (水) 20:39:50 (46d)