投稿日:	
置換をするためのコマンドだが、PCREは基本使えない(自前でビルドすれば使える)
大抵のケースでPerlを使った方が楽だが、Busybox系のディストリなどで入っていない環境では重宝する。
オプション
- -l入力からケツ改行を消す
 CLI入力するとケツに改行が入るのでそれを除去できる
- -p入力行を処理する
- -eスクリプトを流せる- php -rのようなもの
- -i[ext]ファイル置換。extに指定があるとバックアップファイルが生える- sed -i.bak -e 's/aaa/bbb/' path/to/file
 
チートシート
改行を改行コードに変換
コマンドを使う必要がある
入力
cat <<'EOF' | sed ':a;N;$!ba;s/\n/\\n/g'
aaa
bbb
ccc
ddd
EOF
出力
aaa\nbbb\nccc\nddd
コマンドの意味合い
| コマンド | 意味合い | 
|---|---|
| ; | 恐らくコマンドの終わり | 
| : | ラベル。今回の :aはラベルa | 
| N | 入力の次の行をパターンスペースに読み込む | 
| $ | 最終行にマッチ | 
| ! | マッチしない(アドレスとコマンドの間に入れる必要がある) | 
| b | ラベルに分岐する。 baはラベルaに分岐。gotoみたいなもんだと思う | 
つまり入力の次の行をパターンスペースに読み込み、最終行にマッチしなければ入力の次の行をパターンスペースに読み込み、マッチすればs/\n/\\n/gが発動するのだと思われる。
		
投稿日:	
おなじみのアーカイブ作成コマンド。迷ったらヘルプ読んだほうが早い
圧縮編
基本
- tar -zvcf foo.tar.gz foo
z: --gzip, gzip
v: --verbose, 詳細、別になくてもいい
c: --create, アーカイブの新規作成
f: --file, 保存するファイル名
tar -cfだとtarballになると思われる
おまけ
T: --files-from, アーカイブ対象ファイルのリストを読み込む。LF区切りのテキスト
--exclude: <pattern>, アーカイブから除外するパスのパターン
展開編
- tar -zxvf foo.tar.gz foo
z: --gzip, gzip
x: --extract, 展開
v: --verbose, 詳細、別になくてもいい
f: --file, 展開するファイル名
		
投稿日:	
ハイフン始まりを検索する方法
オプションに--を指定する
grep -- '- foo'
PCREを使う方法
grep -P
除外検索をする方法
grep -v "除外ワード"
ファイルに含まれている文字をパス指定して再帰的に検索
grep 検索ワード -rl パス
		
投稿日:	
引数をスペース区切りで先頭から取り出すやつ。本質は配列操作だと思う
基本
shift 2のようにするとシフト数を指定できる
while [ "$1" != "" ]
do
  echo $1
  shift
done
foo.sh abc deを叩くと以下の出力が得られる
abc
de