LoginSignup
1
1

More than 1 year has passed since last update.

Linux実行コマンド記録

Last updated at Posted at 2015-03-06

実際に使用したコマンドを記録する

特定の文字列を含むファイルを検索して文字を置き換える

$ grep -lr -P "x+" * | xargs sed -b -i~ -r -e 's/(x+)/\1000/g'

grep の -P は Perl 正規表現指定
sed の -b は、Cygwin で CR+LF が LF に変換されないようにバイナリモードで開くように指定。
sed の -r は、拡張正規表現指定
sed の 後方参照は 1桁だけ。対象文字列が "xxx" だと "xxx000" になる。

日付ごとのディレクトリにファイルを移動する

以下のようなファイルがあるとする。

xxx-20160301.bin
xxx-20160302.bin
xxx-20160303.bin
xxx-20160304.bin

これらのファイルをファイル名に含まれる日付をディレクトリ名としたディレクトリを作成して、そこへ移動したい。

$ for d in $(\ls -1 xxx-2016* | sed -e "s/^xxx-\([0-9]*\)\.bin$/\1/g" | sort | uniq); do \
  [ -d $d ] || mkdir $d; \
  mv xxx-$d.bin $d; \
done

一応、ワンライナー。
参考:どのUNIXコマンドでも使える正規表現 - Qiita
sed は、"+"が使えなかったのか。カーリブラケット{}にはエスケープ必要と。
以下の変形でもいいかも

$ for d in $(\ls -1 *.bin | sed -e 's/\(.*\)\([0-9]\{8\}\)\(.*\)/\2/g' | sort ); do echo $d; done

.git 以外で20日以内に修正したファイルを検索する

find . -not -path "*/.git/*" -a -mtime -20
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1