MacOSX コマンドメモ¶
created at 2019-08-22 11:57+0900
MacOSXのUnix系コマンドはオプション指定などが、他のUnix系OSやLinuxとはちょと異なることがあるので要注意!!
find¶
このディレクトリ以下は探索しないオプション -prune の使用例。( 探索しない条件 -and -prune ) を並べておいて、最後に -or ( 探索したい条件 -and -print ) を書く。
sudo find / \( -type d -and -path "/Volumes" -and -prune \) -or \( -type d -and -path "/private/var" -and -prune \) -or \( -type d -and -path "/dev/fd" -and -prune \) -or \( -type d -and -name ".git" -and -print \)
sudo find / \( -type d -and -path "/Volumes" -and -prune \) -or \( -type d -and -path "/private/var" -and -prune \) -or \( -type d -and -path "/dev/fd" -and -prune \) -or \( -name "git-core" -and -print \)
最終更新日時を指定して検索する例。4週間前から3日前まで(4w < 探したいファイルの最終更新日時 < 3d かな?)。 境目がわかりづらいのでざっくり探すとき用。厳密に探したいときはダミーファイル作る方がいいのかな?
find ./D* -name "*" -type f -mtime -4w -mtime +3d -print
sed¶
文字列置換の例
sed -i '.bak' -e 's/hoge/moga/g' poem.txt
-
-i
<extension>
¶ バックアップファイルの拡張子を指定する。
-
-e
<command>
¶ 指定したコマンドを実行する。
grep¶
指定したパターンを含むファイルを検索する例。ついでに該当したファイルに対して置換をかける例。
grep -R -l -E 'hoge' . | xargs sed -i '.bak' -e 's/hoge/moga/g'
-
-R
,
-r
,
--recursive
¶
サブディレクトリを再帰的に検索する
-
-l
,
--files-with-matches
¶
(小文字のエル)検索結果としてファイル名のみ出力する。1つのファイル内に該当箇所が複数ある場合でも出力されるのは1回だけ。
-
-E
,
--extended-regexp
¶
パターンを拡張正規表現として解釈する。
-
-I
¶
(大文字のアイ)バイナリファイルをシカトする。
-
-i
,
--ignore-case
¶
大文字と小文字を区別しない。
bzip2¶
圧縮する
bzip2 -zk hoge.txt
解凍する前に中身を見たい
bzcat hoge.txt.bz2
解凍する
bzip2 -dk hoge.txt
bzip2でtarアーカイブを圧縮する
tar cjf hoge.tar.bz2 hoge.txt
bzip2で圧縮したtarアーカイブを解凍する
tar xjf hoge.tar.bz2