差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| study:linux:tip [2025/01/27 05:53] – 作成 banana | study:linux:tip [2025/02/28 01:31] (現在) – [一括置換コマンド] banana | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== 疑似treeコマンド作成 ===== | ====== 疑似treeコマンド作成 ===== | ||
| - | treeコマンドのインストールできない環境でtreeコマンドを利用できる方法を説明します。 | + | treeコマンドのインストールできない環境でtreeコマンドを利用できる方法を説明します。\\ |
| - | find、sedコマンドを利用した下記コマンドを使います。 | + | find、sed((「sed」は「Stream EDitor」の略で、「sed スクリプトコマンド ファイル名」で、指定したファイルをコマンドに従って処理し、標準出力へ出力します。ファイル名を省略した場合は、標準入力からのデータを処理します))コマンドを利用した下記コマンドを使います。 |
| < | < | ||
| - | pwd;find . | sort | sed '1d;s/^\.//;s/\/\([^/]*\)$/|--\1/;s/\/[^/|]*/| /g' | + | pwd;find . | sort | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/" |
| + | </code> | ||
| + | 上記コマンドを.bashrcに追加してaliasとして使えます。 | ||
| < | < | ||
| + | alias tree=" | ||
| + | </ | ||
| + | ここで、最初のsedコマンドはディレクトリ各部分を|に置き換え、ディレクトリ間の階層関係を表す構造を作ります。\\ | ||
| + | また、2番目のsedコマンドは|の後に子ディレクトリ名がある場合、その前に-を追加して、子ディレクトリであることを示します。 | ||
| + | |||
| + | ====== 変更ファイル検索 ====== | ||
| + | 前回のリリース以降、更新されたファイルを検索するscriptの例です。\\ | ||
| + | 使う時は、「modified.sh ' | ||
| + | < | ||
| + | #!/bin/bash | ||
| + | |||
| + | if [ $# -eq 0 -o $# -gt 1 ];then | ||
| + | echo " | ||
| + | exit 1 | ||
| + | else | ||
| + | when=` date --d " | ||
| + | fi | ||
| + | now=`date +" | ||
| + | |||
| + | seconds=`echo "$when - $now" | bc` | ||
| + | minutes=`echo " | ||
| + | |||
| + | Dir="/ | ||
| + | |||
| + | # check directory existence | ||
| + | if [ ! -d $Dir ];then | ||
| + | echo " | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | find $Dir -type f -not \( -path '/ | ||
| + | RETURN_CODE=$? | ||
| + | echo " | ||
| + | exit $RETURN_CODE | ||
| + | </ | ||
| + | |||
| + | ここで、-not \( -path 'some path' -o -path ' | ||
| + | |||
| + | ======= 一括置換コマンド ======= | ||
| + | grep、sedを用いて一括で文字列を置換するコマンドの例です。\\ | ||
| + | 現在フォルダを基準にbakファイルを検索して" | ||
| + | < | ||
| + | grep -lr --include=' | ||
| + | </ | ||
| + | ここで、\\ | ||
| + | grep:\\ | ||
| + | -l: matchするファイルを画面表示\\ | ||
| + | -r: recursive検索\\ | ||
| + | | ||
| + | |||
| + | sed:\\ | ||
| + | -i: 後ろに指定した拡張子でbakupファイル生成\\ | ||
| + | -e: 実行するscriptの指定\\ | ||