[過去ログ] シェルスクリプト総合 その27 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
521
(8): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 11:55:23.82 AAS
>>519
519(2): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 10:53:58.20 AAS
普通にできるぞ
じゃあ、これ相当のことをやってみて

cat /etc/password | grep /bin/bash | cut -d: -f1
(なんかブロックされたからパスワードを大文字にしてる)

ここまで簡潔に書ける言語をシェルスクリプト以外しらない
シェルスクリプトは(特定の用途に対して)最善だから使ってるんだよ
524: 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 12:12:33.73 AAS
>>522
522(2): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 12:05:07.20 AAS
>>520
これってどれ?
ここ>>282-以降にある記述だとてんで仕様になってないから、
仕事レベルとまではいかないまでも、
学生演習の問題として出せる程度には仕様をまとめて書いて。

あとPythonに限らずスクリプト言語はどれでも
シェルにパイプ繋いで任意のシェルコマンドが実行できるから、
シェルにできてPythonでできないことなんてないよ。
勿論シェルでできないことも普通にできるし。
これは、>>521に訂正しておいた。見れてるやろ?

>>523
523(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 12:10:52.66 AAS
大文字w
多分 /etc/p@ssw0rd がブロックされるんだと思う
527
(2): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 12:34:38.85 AAS
>>521
そういうのはperlやawk向きだな。
perl -F: -anle 'print $F[0] if $F[6] eq "/bin/bash"' /etc/passwd
awk -F: '$7=="/bin/bash" {print $1}' /etc/passwd

pythonはもっと汎用言語よりだからずっと長くなる。
こんな感じか?
f = open("/etc/passwd", "r");
for l in f :
 c = l[:-1].split(":")
 if c[6] == "/bin/bash" :
  print(c[0])
ふだんpython書いてないからよくわからん。

専用言語がそれに向いた用途なら、汎用言語よりもコンパクトに書けるのは当たり前。
でなきゃ専用言語の存在価値がない。

でもたとえば改行もデータの一部として扱いたいみたいに向いてない用途だと
書きやすさも長さも逆転したりする。

ひとつの言語にこだわるんじゃなくて、用途に応じて言語を選択するのが
UNIX流だよ。
551
(3): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 19:39:25.91 AAS
問題定義をはっきりせずに、回答に対して一方的にダメ出ししてるから当たり前だろ。
>>521 だって awk や perl の解は >>521 とほぼ同程度の記述量なのに
(GECOS に /bin/bash とか書いてあっても誤動作しないという点ではむしろ優れてる)
「シェルスクリプト以外しらない」とかいう視野の狭さを撤回しないし。

ほぼすべてのプログラマーにとってシェルスクリプトってのは
第二・第三言語であって、シェルスクリプトが最適な用途なら使うけど、
そうじゃない場合があることは当然知ってて、
こんな風に威張って使うものじゃないんだよ。

インフラ担当ならシェルスクリプトが第一言語ってのもありうるけど、
そういう場合にはこんなに威張らないよなあ。
559
(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 23:19:14.33 AAS
>>551
> >>521 だって awk や perl の解は >>521 とほぼ同程度の記述量なのに
> (GECOS に /bin/bash とか書いてあっても誤動作しないという点ではむしろ優れてる)

いや、そんなことドヤ顔で言われましても・・・
4文字追加で終わりだし

cat /etc/password | grep ':/bin/bash$' | cut -d: -f1

減らそうと思えば減らせるし

grep ':/bin/bash$' /etc/password | cut -d: -f1

あれあれ、じゃあこれ↑は、"grep向き" の問題ってことですかね?w

俺が言ってるシェルスクリプト向きの問題っていうのは
既存のコマンドの実行と組み合わせが簡単に実行できるってことだよ
560: 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 23:34:25.44 AAS
>>551
> ほぼすべてのプログラマーにとってシェルスクリプトってのは
> 第二・第三言語であって、シェルスクリプトが最適な用途なら使うけど、

はぁ?第二とか第三とか何いってんだか。
適切な言語を使うだけの話だろ

シェルスクリプトじゃなくてPythonを使えばいいと言われたから、
"シャルスクリプトで普段やってること" = >>521で書いたような
外部コマンドの実行とそれをパイプでつないで簡単に処理することが
簡単にできるって例に出したのに、

お前は「catを実行して、その出力結果をgrep に渡して、さらにcutにわたす」
というお題を、awkやperlに置き換えるしpythonで全く違うコードに書き換えるしw

今からでも良いんやで、pythonで
「catを実行して、その出力結果をgrep に渡して、さらにcutにわたす」
を書いてみなよ。
いいか? catコマンドとgrepコマンドとcutコマンドを
ちゃんと呼び出すんだぞ。今度は間違えるなよw

ほんとシェルスクリプトがなにが得意なのか全くわかってねーわw
563
(3): 名無しさん@お腹いっぱい。 [sage] 2018/06/12(火) 23:46:19.16 AAS
>>559
> あれあれ、じゃあこれ↑は、"grep向き" の問題ってことですかね?w

勿論そうだよ。
正規表現で書ける条件だったから、grepでうまくいった。
世の中には正規表現で書けない条件とかも当然あって、そういう場合
perlやawkなら自明にかけるけど、スクリプト言語使わずに
シェルだけで書こうとすると面倒だったりする。

> 俺が言ってるシェルスクリプト向きの問題っていうのは
> 既存のコマンドの実行と組み合わせが簡単に実行できるってことだよ

それに反対してる人は誰もいないと思うよ。
それこそがシェルが特化している応用分野なわけで。
しかし>>521はそれを示す例題としてはよろしくない。
他の言語ならコマンドの組み合わせとかせずに容易に解ける問題だからね。
570
(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/13(水) 01:18:17.08 AAS
IDもワッチョイもないからオレオレ言われてもレスの時系列で追えないし面倒だわ

まあキチガイ君がお題の条件だしが決定的に出来ない子なのはよく分かる
>「catを実行して、その出力結果をgrep に渡して、さらにcutにわたす」
>521読んで道程まで完全に一致させろいう意図だと理解できたやつがいたら天才だわ
普段から人と会話してなさそう
571
(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/13(水) 01:27:58.12 AAS
>>521
grep /bin/bash </etc/password | cut -d: -f1
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.053s