#navi(../)
* 指定した文字数毎に文字を挿入したい [#f899121a]
文字列を指定した文字間隔で文字を挿入したい場合、sedを使うと簡単に実現することができます。~

#contents

*関連記事 [#yd8989e5]
-[[指定した範囲の行を取得する方法>逆引きUNIXコマンド/指定した範囲の行を取得する方法]]
-[[指定した行に行挿入したい(出現したキーワードの前後行に行挿入したい)>逆引きUNIXコマンド/指定した行に行挿入したい]]
-[[指定した文字数毎に文字を挿入したい>逆引きUNIXコマンド/指定した文字数毎に文字を挿入したい]]
-[[sedで指定した行を削除する方法>逆引きUNIXコマンド/sedで指定した行を削除する方法]]
-[[キーワードからキーワードまでの文字列を抜き出す方法・sedコマンド>逆引きUNIXコマンド/キーワードからキーワードまでの文字列を抜き出す方法・sedコマンド]]
-[[sedを使ってスペースの文字列操作を行う>逆引きUNIXコマンド/sedを使ってスペースの文字列操作を行う]]
-[[sedを使って改行のみ、スペースのみの行を削除する>逆引きUNIXコマンド/sedを使って改行のみ、スペースのみの行を削除する]]
-[[sedでスラッシュを置換する方法>逆引きUNIXコマンド/sedでスラッシュを置換する方法]]
-[[指定した範囲の行を取得する方法>逆引きUNIXコマンド/指定した範囲の行を取得する方法]]

* 指定した文字数毎に文字を挿入する [#p87d69ab]

以下に簡単な例を記します。
 $ 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文字を意味します。

* 指定する文字数が多い場合 [#a9e5c0b1]
指定する文字数が多い場合は、ドットを続けるものしんどいですよね。~
間違いが多くなりますしね。~
その場合は、以下のように記述することができます。
 .{数字}
実際に実行した例を以下に記します。~
例では5文字ごとに分け先頭に!を挿入しています。
 $ echo "abcdefghijklmnopqrstuvwxyz" | sed -e 's/\(.\{5\}\)/!\1/g'
 !abcde!fghij!klmno!pqrst!uvwxyz
尚、{}もエスケープ(\)が必要です。

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

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS