「Linux/コマンドメモ/sed」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→sed実行後-eファイルができる問題) |
(→フォルダ内のすべてを置換して上書き保存) |
||
(同じ利用者による、間の2版が非表示) | |||
行9: | 行9: | ||
==フォルダ内のすべてを置換して上書き保存== | ==フォルダ内のすべてを置換して上書き保存== | ||
− | find . -type f -name "*.txt" | xargs sed -i -e "s/hoge/piyo/g" | + | 例:appフォルダ内の .txt拡張子のファイル内のhogeをpiyoへ |
+ | find ./app -type f -name "*.txt" | xargs sed -i -e "s/hoge/piyo/g" | ||
==変数を置換する場合== | ==変数を置換する場合== | ||
行41: | 行42: | ||
==sed実行後-eファイルができる問題== | ==sed実行後-eファイルができる問題== | ||
− | rm hoge.txt- | + | 以下で消せば良い |
+ | rm hoge.txt-e | ||
ディレクトリ内すべての-eを消す | ディレクトリ内すべての-eを消す | ||
− | find . -type f -name "*.txt-e" | xargs | + | find . -type f -name "*.txt-e" | xargs rm |
2022年8月25日 (木) 03:33時点における最新版
目次
[非表示]置換して表示
sed -e "s/hoge/piyo/g" test.txt
置換して上書き保存
sed -i -e "s/hoge/piyo/g" test.txt
直下のtxt拡張子のすべてを置換して上書き保存
sed -i -e "s/hoge/piyo/g" *.txt
フォルダ内のすべてを置換して上書き保存
例:appフォルダ内の .txt拡張子のファイル内のhogeをpiyoへ
find ./app -type f -name "*.txt" | xargs sed -i -e "s/hoge/piyo/g"
変数を置換する場合
TEST="hoge" TEST=`echo $TEST| sed "s/hoge/piyo/g"`
正規表現
sed -i -e "s/<string name=¥"app_flag¥">¥(true¥|false¥)/<string name=¥"app_name¥">true/g" strings.xml
区切り文字
以下区切り文字が使える
/ | % :
dir内のファイルを対象にある文字を置換
ls schema/* | xargs sed -i "s/CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP/0/g"
grep内のファイルを対象にある文字を置換
grep hoge ./ -r -l | xargs sed -i -e "s/hoge/piyo/g"
一致する文字を削除
sed -i -e /E36A38/d /d/www/hogehoge/hoge.xml
一致する文字を正規表現で削除
sed -i -e "/[A-Z0-9]\{32\}/d" /d/www/hogehoge/hoge.xml
hoge.xml
<item>1234567890123456789ab</item>
sed実行後-eファイルができる問題
以下で消せば良い
rm hoge.txt-e
ディレクトリ内すべての-eを消す
find . -type f -name "*.txt-e" | xargs rm