- 1 名前:名無しさん@お腹いっぱい。 mailto:sageteoff [2015/08/14(金) 23:42:01.51 .net]
- シェルスクリプトの総合スレです。
□お約束 ・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。 FreeBSDユーザは/bin/shの正体がashなので注意。 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。 src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/ heirloom.sourceforge.net/sh.html ・csh/tcshのシェルスクリプトは推奨されません。 (理由は「csh-whynot」でググれ) ・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。 manや参考リンクを見ましょう。 aproposないしはman -kでそれらしい単語による簡単な検索もできます。 ・シェルで使えるワイルドカード等は正規表現ではありません。 正規表現の話題はスレ違い(正規表現スレへ) ・シェルスクリプトのことをシェルってゆーな □初心者へのアドバイス: ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも awkまたはperlの方が適した処理にはそちらを使いましょう。 ・知らないコマンドが出てきたらmanを引きましょう。 ・思い通りに動かないときは、まずは sh -x でトレースしましょう。 □回答者への注意事項: ・シェルスクリプトでの処理方法を質問しているのに、よくわからずに 「そういうのはperl使いましょう」と回答するのはやめましょう。 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。 前スレ シェルスクリプト総合 その24 peace.2ch.net/test/read.cgi/unix/1415634843/
- 963 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/04(土) 18:32:17.60 .net]
- >>943
>ところでマカーな人はbash4入れてるんですかね。 Homebrewで入れてそっち使うようにしてる
- 964 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/07(火) 19:02:41.56 .net]
- いつもシェルが使える環境ある?
自分は仕事ならcygwin(今は使ってない)、実機、仮想環境 プライベートならラズパイ、仮想環境かな
- 965 名前:名無しさん@お腹いっぱい。 [2017/03/07(火) 22:43:56.07 .net]
- Mac
- 966 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/07(火) 23:30:24.96 .net]
- 俺はスマホにzsh入れてるけど
- 967 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/08(水) 01:50:34.93 .net]
- >>947
SL-Zaurus(SL-C860)を今だに現役で使っているよ
- 968 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/09(木) 02:31:23.57 .net]
- そういうのって
ただ書けるだけじゃなくて動かせたり 実際にその機械で便利に使えたりするのですか?
- 969 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/09(木) 17:50:34.83 .net]
- pythonの出力をシェルの変数にするにはどうやれできますか?
x=$( python test.py ) はダメでした
- 970 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/09(木) 17:58:17.55 .net]
- $ cat test.py
print("Hello world!") $ python test.py Hello world! $ x=$(python test.py) $ echo $x Hello world!
- 971 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/10(金) 09:16:11.80 .net]
- あれ?そうだよなと思ったら、pythonの文字コードの扱いが変でした
シェルごめんよ
- 972 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/10(金) 13:07:41.33 .net]
- pythonのせいにするのもどうかと
- 973 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/10(金) 16:08:16.57 .net]
- pythonは文字コード周り落とし穴が多いすぎ
pythonのせい
- 974 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/11(土) 22:32:29.75 .net]
- $@から$1を除いたものを関数に渡す方法を教えてくだしあ
- 975 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/11(土) 22:46:42.79 .net]
- shiftするしかないんじゃないかな
呼出し後に元に戻したいとするとsetかな
- 976 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/11(土) 23:06:24.73 .net]
- 呼び出し先でshiftすりゃいいじゃん
- 977 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/12(日) 00:12:25.14 .net]
- せやな!
- 978 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/12(日) 01:47:16.95 .net]
- >>957
bash なら "${@:2}" でええんちゃう
- 979 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/12(日) 04:14:35.39 .net]
- >>961
その発想もなかった パラメータとして渡すならこっちの方が分かりやすいな
- 980 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/12(日) 19:17:36.56 .net]
- ずっと、行の抜き出しはprcegrepを使ってたげど
sed -n -e '/hoge1/,/hoge2/p' これでできるのを、今知って感動中。しかも、こっちの方が速い。 そのあとの置換は sed -n -e '/hoge1/,/hoge2/p' | sed -e 's/foo/bar/g' としかできなかったけど sed -n -e '/hoge1/,/hoge2/p' -e 's/foo/bar/g' で、やる方法とかであるんですか?
- 981 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/12(日) 20:09:10.06 .net]
- sed -n -e 's/foo/bar/g' -e '/hoge1/,/hoge2/p'
じゃだめなの?
- 982 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/12(日) 20:49:35.74 .net]
- sed -ne '/hoge1/,/hoge2/{s/foo/bar/g;p;}'
でもいけそう
- 983 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/13(月) 15:22:55.40 .net]
- sedスレあるのに忘れられてそうw
- 984 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/13(月) 17:19:42.05 .net]
- sed -e '/hoge1/,/hoge2/!d' -e 's/foo/bar/g'
- 985 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/13(月) 19:49:20.42 .net]
- ありがとうございます
さらに速くなりました 一番最後の文字はコマンドというのを実感
- 986 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/13(月) 20:38:32.02 .net]
- sedは-n使ったら負け
- 987 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 13:36:43.93 .net]
- なんで?
- 988 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 13:37:42.13 .net]
- うるさい!
俺が負けだって言ったら負けなんだよ 大人しく言う事聞け
- 989 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 13:43:38.36 .net]
- なんだそのダメな親みたいな言い分は
- 990 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 13:45:42.22 .net]
- むしろジャイアンかな
- 991 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 16:27:57.38 .net]
- pでプリントした行は元質問にもあるようにストリームを流れて行かない、
お漏らししたようなものだからね
- 992 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 18:03:51.07 .net]
- sed だと、後方参照の時にバックスラッシュでエスケープしまくることになるのがどうにも…
それで、いつの間にか perl を代わりに使うようになった。
- 993 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 19:02:59.32 .net]
- sedでできることをperlでやるのは微妙に悔しいw
- 994 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 20:28:01.98 .net]
- sed -e "s/微妙に/非常に/" >976
- 995 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 20:45:20.13 .net]
- 入力なくね?
- 996 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/15(水) 20:58:18.06 .net]
- 考えすぎ
- 997 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/16(木) 12:44:27.48 .net]
- >>978
sed -e "s/微妙に/非常に/" <975 >976 ってやって空のファイルを作ってしまったあの頃...
- 998 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/16(木) 12:47:16.46 .net]
- 分からんでもない
- 999 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/16(木) 16:23:09.20 .net]
- 最初に head/tail、grep、sort 辺りを処理の都合上先にやることが多いので、
sed の入力にはパイプを使うことが多いかな。
- 1000 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/16(木) 22:48:37.43 .net]
- 日本語下手かw
- 1001 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/18(土) 22:25:35.75 .net]
- grepしてsedは素人
- 1002 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/18(土) 23:27:17.30 .net]
- なんで?
- 1003 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 00:04:19.09 .net]
- sedだけでできるからかと
- 1004 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 00:24:39.59 .net]
- grepである程度簡単なワードで絞ってからのほうが、複雑な置換は早そうだけど
- 1005 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 00:57:36.33 .net]
- 実験して見せられるまで性能に関する予想は信じない
- 1006 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 01:06:54.08 .net]
- まぁこじらせた人にてみればその手間は実に腹立つだろうな
- 1007 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 10:07:51.17 .net]
- 「ひとつのことを上手くやる」から考えると、grep してから sed の方がマッチしてそう
- 1008 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 11:41:33.99 .net]
- windowsのdos窓は使えるけれど、grep、sed、awk、perlなどはなし。当然他のスクリプト言語もなし。
さらに、新たなソフトのインスコはできない。 まあ、notepadでソースの編集はできる。 Eドライブには多くのフォルダがあって、中にはjpegのえろ画像が1テラ分てんこ盛り えろ画像だけを全部Dドライブにコピーしたい。 Eドライブのフォルダを見ると8階層ぐらいのフォルダもあって、とても手作業のコピペはムリ。 にゃんとか目的を達成する方法はないであろうか?! 各位のお知恵を拝借したい。
- 1009 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 13:00:13.49 .net]
- powershell でも使えばいいんじゃないかな
- 1010 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 14:12:15.82 .net]
- ここじゃなくてもっと他に聞くべき所があるだろうな
- 1011 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 20:18:27.47 .net]
- その環境的な制限がありつつ、エロ画像を扱うという状況が想像できないな
仕事でエロ画像を扱ってるか上司の個人環境とかかな
- 1012 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 20:31:39.22 .net]
- robocopyでコピーすれば良い
- 1013 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 20:55:37.07 .net]
- >>988
GNU grep + GNU awk の場合だけど、GNU awk単独よりも早いらしいぞ papiro.hatenablog.jp/entry/2015/05/19/003432
- 1014 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 22:03:55.18 .net]
- ドライブを別のPCからアクセス可能にしたらいいのに
- 1015 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 23:09:48.69 .net]
- >>996
timeの使い方を知らないって事を自慢してどうしたいんだ?
- 1016 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/19(日) 23:10:46.82 .net]
- エロ画像に寛容なUNIX板
- 1017 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/20(月) 10:44:19.74 .net]
- >>994
昔社内から netnews が見れてたので perl でスクリプト組んでエロ画像落としまくってたのをふと思い出した 当時は普通にFDに移動して持ち帰ってたけど
- 1018 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/20(月) 12:06:05.49 .net]
- 俺にはもうFDってのがもうすごいわ
- 1019 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|