Linuxのターミナルを使っていて,学生に問われて*1即答できたりできなかったりしたことを,調べ直しました.
- カレントディレクトリにある全ファイルを,サイズの大きいものから順に並べるには
- ls -S
- ls -l | sort -k 5 -n -r
- テキストファイルの先頭7行だけを取り出すには
- head -n 7 ファイル名
- head -7 ファイル名
- テキストファイルの241行目の内容を,emacsなしで知るには
- sed -n 241p ファイル名
- head -n 241 ファイル名 | tail -n 1
補足.何通りか書いたうち,最初のが一番洗練されていて,覚える価値があるもので,それ以外は,最初のが思い出せない時にひねり出そうかというものです.
headやtailの「-行数」オプションは,推奨されないとなった記憶があるのですが,実行しても警告は出ません.
ある行番号の内容を知るのに,catの-n (行番号をつけるオプション)とgrepをパイプでつなぐのが簡便な方法ですが,「grep 241」では,1241行目や,2410〜2419行目も出てきます.それで,空白の正規表現を入れて絞り込みを試みましたが,
cat -n ファイル名 | grep "^[[:blank:]]*241[[:blank:]]\\+"
という*2,とても暗記できないものになりました.grepで使用できる正規表現にあるように,0回以上の繰り返しは *,1回以上は \+ となります.