スペース -> 改行
| xargs -n1
| tr ' ' '\n'
| tr \ \\n
(上のものをエスケープしたもの)
改行 -> スペース
| xargs
| tr '\n' ' '
| tr \\n \
行数カウント
| wc -l
| awk 'END{print NR}'
| awk '$0=NR' | tail -n1
これはwc -l
だけで十分ですね
先頭1行だけ取り出す
| head -n1
| awk 'NR==1'
head -n1
はかなり使えるのでよく覚えましょう
先頭1行だけ削除
read _
で受け取ってしまう| tail -n +1
| sed -e '1d'
| awk 'NR!=1'
末尾1行だけ取り出す
| tail -n1
| sed -e '$p;d'
| awk 'END{print $0}'
sedとawkは末尾n行に対応できていないので、tailさえ覚えておけば事足りると思います
末尾1行だけ削除
これはそこそこレアケースな気がする(なぜなら上3つでだいたい事足りるため)
| head -n -1
| sed -e '$d'
重複をカウント
| sort | uniq -c
各行をトリムする
| sed -e 's/^\s*//'
| sed -e 's/^\s*\|\s*$//'
後ろ側のトリムが必要になることはあまりないです。
ソート関連
| sort -n
辞書順ではなく数値とみなして比較| sort -nk1
キー指定| sort -nr
降順
あまり使えないテク
echo {A..Z}'
半角のアルファベットを列挙するzsh -c 'echo {A..Z}|tr -d " "'
全角のアルファベットを列挙する。bashはこのブレース展開をしてくれないので、zshで行うruby -ne 'puts $_.tr("0-9a-zA-Z","0-9a-zA-Z")'
Rubyが使えるなら、これで全角→半角変換ができる