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

ディレクトリ内のすべてのファイルで単語のすべての出現を変更する方法

これをチェックしてください:http://www.cyberciti.biz/faq/unix-linux-replace-string-words-in-many-files/

cd /var/www
sed -i 's/privelages/privileges/g' *

私は通常、この短いスクリプトを使用します。これは、すべてのファイルとすべてのディレクトリ名とファイル名の文字列の名前を変更します。これを使用するには、以下のテキストを replace_string というファイルにコピーします。 、 sudo chmod u+x replace_string を実行します それを sudo mv replace_string /usr/local/bin に移動します フォルダを作成して、任意のディレクトリで実行できるようにします。

注:これは Linux (ubuntu でテスト済み) でのみ機能し、MacOS では失敗します。また、git ファイルなどを台無しにする可能性があるため、これにも注意してください。バイナリでもテストしていません。

#!/usr/bin/env bash

# This will replace all instances of a string in folder names, filenames,
# and within files.  Sometimes you have to run it twice, if directory names change.


# Example usage:
# replace_string apple banana

echo $1
echo $2

find ./ -type f -exec sed -i -e "s/$1/$2/g" {} \;  # rename within files
find ./ -type d -exec rename "s/$1/$2/g" {} \;    # rename directories
find ./ -type f -exec rename "s/$1/$2/g" {} \;  # rename files

サブディレクトリを考慮したバリエーション (未テスト):

find /var/www -type f -exec sed -i 's/privelages/privileges/g' {} \;

これは find になります すべてのファイル (ディレクトリではなく、-type f で指定) ) /var/www の下 、 sed を実行します 見つかった各ファイルの "privelages" を "privileges" に置き換えるコマンド。


Linux
  1. Linuxでディレクトリの名前を変更する方法

  2. すべてのファイル(非表示を含む)をあるディレクトリから別のディレクトリに移動するにはどうすればよいですか?

  3. ディレクトリ内のファイルの名前を変更しますか?

  1. 特定のフォルダ内の特定の拡張子を持つすべてのファイルを削除するにはどうすればよいですか?

  2. Linux ですべてのフォルダーとファイルの名前を小文字に変更するにはどうすればよいですか?

  3. すべてのファイルを現在のディレクトリから上位ディレクトリに移動する方法は?

  1. Linuxですべてのファイルとディレクトリ名を小文字に変更

  2. ディレクトリ内のすべてのゼロバイトファイルを見つける方法

  3. ディレクトリ内のすべてのファイル (ファイルのクラス) へのシンボリック リンクを作成する方法は?