んなもんさあ、grepしてsedしてawkすれば簡単じゃん at PROG
[2ch|▼Menu]
181:仕様書無しさん
19/04/23 21:55:53.66 .net
>>177
シンプルの反対は複雑であって
難しいじゃないですよ?

182:仕様書無しさん
19/04/23 22:25:54.08 .net
>>181
バカ「grep使うと複雑!!」
ええええええええええ
どっちでも変わらんだろアホwwwwww

183:仕様書無しさん
19/04/24 00:23:57.34 .net
ps -ef | grep runner | awk {'print$2'}
ps -ef | awk /runner/{'print$2'}
下のほうがシンプルだろ?
誰が下のほうが複雑だなんて言ったんだ?

184:仕様書無しさん
19/04/24 03:27:29.09 .net
正規表現なんか覚えなくても色々できちゃうREXXで万全なんだけどなぁ
UNIXって前時代的で不便だね

185:仕様書無しさん
19/04/24 08:54:13.47 .net
>>183
まーたアスペ晒してる。
バカ「grep使ってる上は複雑!!」
ええええええええええw

186:仕様書無しさん
19/04/24 09:20:14.93 .net
アスペ「まーたアスペ晒してる! まーたアスペ晒してる!」

187:仕様書無しさん
19/04/24 11:01:00.61 .net
>>186
アスペじゃないマン
>>177
>>183
>>185
「アスペじゃない」
wwwwwwww

188:仕様書無しさん
19/04/24 11:02:24.14 .net
>>186
間違った
もっとアスペだったw
>>177
>>181
>>182
>>183
>>185
アスペじゃないマン「アスペじゃない」
wwwwwwww

189:仕様書無しさん
19/04/28 19:11:18.06 .net
問題
6000行のCSVファイルhoge.csvから2つ目のカラムに
アルファベット2文字に続いて数字4桁の文字列がマッチする行を検索して
1、2、4〜6カラム目をカンマ区切りで出力しなさい
プログラマーならコードで相手をマウントしないとね^^

190:仕様書無しさん
19/04/28 20:27:40.22 .net
なおCSVの仕様はRFC4180準拠とする
URLリンク(www.kasai.fm)

191:仕様書無しさん
19/04/28 20:33:33.89 .net
RFC4180の正確な仕様はリンク先を見るとしてかんたんに説明すると
・改行はCR+LF
・フィールドに改行やカンマを含める場合はダブルクォートでくくる
・ダブルクォートをフィールドに含める時は""というふうにエスケープする

192:仕様書無しさん
19/04/29 15:11:48.37 .net
やっぱりね
ネットで吠える人間ほどコードを書けない
あれほど罵倒しあっていた勢いが完全に消えた
多分罵倒しあってる人たちはgrepとかawkを実際には使えないんじゃないかな

193:仕様書無しさん
19/04/29 18:47:08.94 .net
だって下のほうが良いって結論出たし
ps -ef | grep runner | awk {'print$2'}
ps -ef | awk /runner/{'print$2'}

194:仕様書無しさん
19/04/29 18:47:44.41 .net
>>192
というか勢い収まってから言うのやめとけよw
恥ずかしいだけ

195:仕様書無しさん
19/05/03 15:26:49.65 .net
おかしいな
なんか無限ループに入り込んでいる気がする

196:仕様書無しさん
19/05/03 17:37:43.13 .net
「んなもんさあ、grepしてsedしてawkすれば簡単じゃん 」(どやぁ)
「awkだけでできますよ」
「むきーっ!」

197:仕様書無しさん
19/06/01 19:49:58.77 .net
今時Unixだけで仕事している奴はいないだろ

198:仕様書無しさん
20/12/07 20:39:15.13 .net
ずっとgrepしてawkしてsortしてuniqしてたけど、grepいらなかったんだなとプログラミングawkを読んで知ったとこでした
私はきっと無能ですけど英語で落ちてたブレインダンプス記憶しまくりでMCSEホルダーでIT派遣で飛ばされた先で月80万稼ぎつつチョロチョロっとLinuxさわっとります
上司がもっと無能なので助かるわまじで
上司は多分○nxへのログイン方法も知らないしgrepはおろかcpもmvもchmodもtailもheadも知らないのよね

199:コロナ禍の暇人
21/01/01 08:40:16.64 .net
>いつかこのスレを読むかもしれない初心者へ
やりたい事が出来れば書きやすい様に書けば良い。効率を考えてリファクタリングするのも良いが、書くのがその場限りのワンライナーならその必要は無いだろう。後で再利用するかもしれないスクリプトを書くのならば読んだ時に直感的に分かりやすい表現にすると良い。UNIX的な思想でシンプルなコマンドの組み合わせで書くと後から読んでも分かりやすい事が多いが、ただシンプルなコマンドを使えば分かりやすい訳でもない。
このスレの話題を例に説明する。
ここでの"やりたい事"→「全てのユーザーのプロセスからrunnerのプロセスIDを抜き出す」
やり方は色々ある
ps -ef | grep runner | awk '{ print $2 }'
ps -ef | awk '/runner/{ print $2 }'
ps -ef | grep runner | tr -s ' ' | cut -d' ' -f2
awkが使える環境であれば一番上のやり方が"思考"の順と後述する"試行"の順と合っていて自然。
二番目はより短く書ける。これがぱっと思い付くならこの書き方もいいだろう。
三番目はシンプルなコマンドの組み合わせだが、cutの為にtrで連続した空白を一つにまとめているのが思考の順番と合わないため理解し難い。
最後に"やりたい事"を実現するための過程を、試行も含めて書いてみる。
まずはプロセス情報を取り出す
→ps -ef (PIDが欲しいだけなら-fは要らないが、定型的に付けておく)
↑プロセスが沢山出る
欲しいのはrunnerの情報だけ
→ps -ef | grep runner
↑意図しないプロセスが紛れてないのを確認
PIDが欲しい(空白区切りで2列目)
→ps -ef | grep runner | awk '{ print $2 }'
↑所望の結果が得られる
上記はあくまで例で、慣れてくればこの様な試行を省略して最初から最後のワンライナーで書けるようになる。慣れるまで書きやすく読みやすくを意識して沢山書くと良い。
長文最後まで読んでくれた方、ありがとう。

200:仕様書無しさん
21/07/05 02:07:27.49 .net
おつかれ
パイプの数が多いと自己満足に浸れるので俺はgrep + awk派だなw
でもさ、psの出力ならPIDは$2じゃなくて$1では?

201:仕様書無しさん
21/07/08 01:01:42.90 .net
そんな中ガチプログラマはffftpでマイpcに落としてエクセルでオートフィルタするのであった。


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

521日前に更新/55 KB
担当:undef