を実行すること。 0829名無しさん@お腹いっぱい。2018/04/02(月) 08:25:59.92>>827 man エスケープシークエンス で検索。 0830名無しさん@お腹いっぱい。2018/04/02(月) 10:28:43.52 man manすればいい TIPSに載ってる 0831名無しさん@お腹いっぱい。2018/04/02(月) 14:17:49.92 あと、emacs に限って言うと M-x man (ESC x man リターン) と叩いて、man のエントリー名を入れれば、 きっちり整形した結果を表示してくれるから、 col -b を使う必要はあまりない。 0832名無しさん@お腹いっぱい。2018/04/02(月) 18:03:58.27>>822 ググってみたらこんな方法があったよ。 ↓ yes '' | cat -n | head -100 | sed 's/ //g' 0833名無しさん@お腹いっぱい。2018/04/02(月) 18:24:12.37 yesはなんか処理間違えると止まらなくなりそうで怖いんだよな 0834名無しさん@お腹いっぱい。2018/04/02(月) 21:00:30.14>>832 POSIX catには-nオプションがない[*1]のでnlコマンドを使う方法を提案する。 $ yes '' | nl -b a -n ln | head -n 10 | sed -e 's/[ \t]*//g' | tr '\n' ' '
*1: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cat.html0835名無しさん@お腹いっぱい。2018/04/02(月) 21:07:04.97 $ yes '' | nl -b a | head -n 10 | tr -d ' \t' | tr '\n' ' ' 修正。もっと簡単にできるわww 08368342018/04/02(月) 21:28:17.87 これもしかしたらheadコマンドとnlコマンドの順番入れ替えると速度違う? んなことないと思ってたけどビミョーに差があるかもしれん。 詳しい人検証してくれ……。 $ time for a in $(seq 10000); do seq 10000 > /dev/null; done real 0m14.601s user 0m0.452s sys 0m3.736s $ time for a in $(seq 10000); do yes '' | nl -b a | head -n 10000 | tr -d ' \t' | tr '\n' ' ' > /dev/null; done real 1m2.693s user 0m5.672s sys 0m21.032s $ time for a in $(seq 10000); do yes '' | head -n 10000 | nl -b a | tr -d ' \t' | tr '\n' ' ' > /dev/null; done real 0m47.944s user 0m1.472s sys 0m17.820s 0837名無しさん@お腹いっぱい。2018/04/02(月) 21:41:13.89 並行して動くか、出力の完了を待ってから動くかの違いだろ 0838名無しさん@お腹いっぱい。2018/04/02(月) 23:47:22.15 パイプで繋いでプロセス4つも5つも上げるくらいなら、 素直にawk 1プロセスですませた方が軽くないか? 08398362018/04/02(月) 23:56:24.81>>838 俺awkできないんだわ。恥かしいことにw そのうち勉強しようしようと思っていて今にいたる。
awkでやるとどんな感じになる? 08408362018/04/03(火) 00:14:31.67 ていうかseqの既定の出力を勘違いしてた $ yes '' | head -n 10 | nl -b a | tr -c -d '\n[:digit:]' こんなもんかな? $ time for a in $(seq 10000); do yes '' | head -n 10000 | nl -b a | tr -c -d '\n[:digit:]' > /dev/null ; done
real 0m42.358s user 0m0.544s sys 0m14.452s 0841名無しさん@お腹いっぱい。2018/04/03(火) 00:40:30.08 awk 'BEGIN {for(i=10;i<=20;i++) printf "%d\n",i}' 0842名無しさん@お腹いっぱい。2018/04/03(火) 01:08:09.19 yes '' | sed -n '=;10q' 0843名無しさん@お腹いっぱい。2018/04/03(火) 14:22:10.27 sedでやるとは 0844名無しさん@お腹いっぱい。2018/04/03(火) 18:22:16.97 何かゴルフっぽくなってきてるw
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_03 > removing sequences of one or more <newline> characters at the end of > the substitution. Embedded <newline> characters before the end of > the output shall not be removed; however, they may be treated as > field delimiters and eliminated during field splitting, depending on > the value of IFS and quoting that is in effect. If the output > contains any null bytes, the behavior is unspecified.