パイプリダイレクト
0: 標準入力
1: 標準出力
2: エラー出力
3以降: プロセスが開いたファイル
リダイレクション(標準出力)
出力先を変更する場合
1 > hoge
: hogeに標準出力のみを出力
2 > hoge
: hogeに標準エラー出力のみを出力
& > both
: bothに標準出力,標準エラー出力の両方を出力
リダイレクション(標準入力)
cmd1 < fileA
: fileAの内容をcmd1に取り込むcmd1 < fileA | cmd2
: fileAの内容を標準入力からcmd1に
取り込み出力結果をcmd2に標準入力で渡す。
特殊なファイルや記述
<< here document
cat << eos
:指定した文字列が現れるまでの内容を,コマンドの標準入力として扱う。
dev/null
読み込むと常にEOFが返ってくる。
tac
ファイルの内容を最後の行から表示する。
tee
標準入力を別のコマンドとリダイレクトすると同時に,ファイルも格納することが可能。
利用方法
標準入力から読み込んだデータを標準出力とファイルに出力する。
例
nl /etc/passwd | tee myfile.txt| head -3
パスワードをmyfile.txtに出力すると同時に,先頭3行を表示する。
コマンド同士の結合について
cmd1;cmd2
cmd1実行後,終了コードに関係なくcmd2を実行
cmd1&&cmd2
cmd1の終了コードが0ならば,cmd2を実行
cmd1||cmd2
cmd1の終了コードが0でなければ,cmd2を実行
※ 終了コードは, echo $?で確認可能
grepコマンド
オプション
-v : パターンに一致しない行
-n: 行番号を出力
-l: パターンに一致するファイル名
-i: 大文字,小文字を区別しない
headコマンドに関して
- デフォルトで10行分出力
- -100 で100行出力
trコマンド
標準入力から,入力した文字を指定したフォーマットに変換する。
例) 小文字のアルファベットを大文字に変換する。
tr ‘a-z’ ‘A-Z’
キーボード入力: hello
出力: HELLO
例) -dオプションで一致した文字を削除する。
tr -d ‘my’
キーボード入力: My name is yuko
出力: M nae is uko
※ ファイル指定は不可
sedコマンド
- 単語単位の変換や削除にはsedコマンドを使用する。