#author("2020-02-19T10:31:06+09:00","default:Miyashita","Miyashita")
#author("2020-02-19T11:56:24+09:00","default:Miyashita","Miyashita")
*ファイル内の文字列を置換する [#ca85ba4c]
ファイル foobar.txt 内に含まれる org という文字列を new に置換した, hoge.txt というファイルを作成する場合

#codeprettify{{
sed -e "s/org/new/g" ./foobar.txt > ./hoge.txt
}}

e オプションは expression を指し,-e の後に置換の表現を記述する.~
「/g」をつけるとファイル内でマッチしたパターン全てを置換する.「/」で終わる場合は最初にマッチした1回のみ.~
ファイルに上書きするときは -i を付け加える.~

grep でディレクトリ内のファイル全てを対象に置換することもできる.~
grep でディレクトリ内のファイルをリストアップして,その全てを対象に置換することもできる.~
#codeprettify{{
org="orgstring" # 置換前
new="replaced" # 置換後

path="hoge/directory/*.txt" # 対象ファイル

for f in `grep -rlI $org $path`; do sed -i -e "s/$org/$new/g" $f; done
for f in `grep -rlI "org" path/of/somewhere `; do sed -i -e "s/org/new/g" $f; done
}}

特殊文字を含む場合は,文字の前にバックスラッシュでエスケープするのを忘れないように.

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes