17/02/28 23:57:54.64 .net
echo test | grep a
みたいな時に終了コードはgrepこの場合1
でかつ標準出力にはtestが出ていて欲しいのですが
どうしたらいいでしょうか?
環境はbashです
944:名無しさん@お腹いっぱい。
17/03/01 00:40:42.45 .net
echo test | tee /dev/tty | grep a
でどうだろう?
945:名無しさん@お腹いっぱい。
17/03/01 00:57:07.01 .net
終了コード1のときにはその文字列を表示したいとかによって違う気がする。
常に入力をそのまま出力していいのだろうか。
946:名無しさん@お腹いっぱい。
17/03/01 01:36:33.88 .net
仕様を細かく詰めてない気がするけど とりあえず
echo test | ( grep -v a; exit $(expr \( "$?" + 1 \) % 2 ))
947:名無しさん@お腹いっぱい。
17/03/01 02:35:11.20 .net
みなさん、ありがとうございます
echo の部分は常に表示、grepは結果のみ欲しいので-qで、判定につかうインプットは常に全量表示して、結果はリターンコード、標準出力は人が見るよう、リターコードはその後のシステム的な分岐につかう的な目的です(後続はbashの世界でないのでワンライナーが嬉しい)
948:名無しさん@お腹いっぱい。
17/03/01 05:09:32.29 .net
macのsipsコマンドについて質問しても大丈夫ですか?
例えば-zと-sを一緒に実行して--out でフォルダに書き出したいとして
どういうルールで並べて記述すればいいでしょうか?
sips -Z 200 * -s format jpeg --out Converted/
あれこれいじって、たまたまこれで動いたのですが
正しいのかわかりません。
よろしくお願いします。スレチだったらすいません。
949:名無しさん@お腹いっぱい。
17/03/01 09:20:45.49 .net
>>930
grep にこだわらくても良くて、GNU sed を使ってもいい場合:
$ echo test | sed '/a/!q1'
test
$ echo $?
1
950:名無しさん@お腹いっぱい。
17/03/01 09:22:21.87 .net
>>931
正しいけどスレチ
man見ろ
見られないんなら
URLリンク(developer.apple.com)
951:名無しさん@お腹いっぱい。
17/03/01 09:41:41.92 .net
要求満たしつつ個人的に好きなのは>>927
952:名無しさん@お腹いっぱい。
17/03/01 09:50:14.78 .net
「標準出力」じゃないから要求満たしてないんじゃない?
953:名無しさん@お腹いっぱい。
17/03/01 10:04:09.41 .net
>>931
そういえばこういうスレもあったり
【Macintosh】MacでUNIX【Terminal】
スレリンク(unix板)
mac板でよかった気もするけど
OS XをUnixとして使ってる人の為のスレ 18
スレリンク(mac板)
954:名無しさん@お腹いっぱい。
17/03/01 10:17:52.51 .net
>>932
あ、間違えた…こうしないと
$ echo test | sed -n 'p;/a/H;${x;/./q0;q1}'
955:名無しさん@お腹いっぱい。
17/03/01 12:19:32.48 .net
echo test | awk '/a/{x=1}//END{exit !x}'
956:名無しさん@お腹いっぱい。
17/03/01 17:16:16.75 .net
$ echo test | awk '/a/{x=1}{print}END{exit !x}'
じゃないの?
957:名無しさん@お腹いっぱい。
17/03/01 17:36:55.41 .net
$ echo test | grep -B10000 -A10000 a
958:名無しさん@お腹いっぱい。
17/03/01 17:38:08.89 .net
あああ、1行もマッチしないとダメだ
959:名無しさん@お腹いっぱい。
17/03/01 21:54:56.86 .net
>>933 >>936
スレチにもかかわらずありがとうございました!
960:名無しさん@お腹いっぱい。
17/03/04 09:13:31.42 .net
>>931
うちでもよく使うが、sips なんて他には無いからな
for i *.jpg; do sips -Z 200 $i -s format jpeg --out Converted/$i; done
ところでマカーな人はbash4入れてるんですかね。bash3なので、最近ココで出てくるreadarrayが使えない
961:名無しさん@お腹いっぱい。
17/03/04 09:17:20.48 .net
あー in が抜けてる
for i in *.jpg ; do な
962:名無しさん@お腹いっぱい。
17/03/04 10:32:40.92 .net
ImageMagickのconvertみたいなものか
963:名無しさん@お腹いっぱい。
17/03/04 18:32:17.60 .net
>>943
>ところでマカーな人はbash4入れてるんですかね。
Homebrewで入れてそっち使うようにしてる
964:名無しさん@お腹いっぱい。
17/03/07 19:02:41.56 .net
いつもシェルが使える環境ある?
自分は仕事ならcygwin(今は使ってない)、実機、仮想環境
プライベートならラズパイ、仮想環境かな
965:名無しさん@お腹いっぱい。
17/03/07 22:43:56.07 .net
Mac
966:名無しさん@お腹いっぱい。
17/03/07 23:30:24.96 .net
俺はスマホにzsh入れてるけど
967:名無しさん@お腹いっぱい。
17/03/08 01:50:34.93 .net
>>947
SL-Zaurus(SL-C860)を今だに現役で使っているよ
968:名無しさん@お腹いっぱい。
17/03/09 02:31:23.57 .net
そういうのって
ただ書けるだけじゃなくて動かせたり
実際にその機械で便利に使えたりするのですか?
969:名無しさん@お腹いっぱい。
17/03/09 17:50:34.83 .net
pythonの出力をシェルの変数にするにはどうやれできますか?
x=$( python test.py )
はダメでした
970:名無しさん@お腹いっぱい。
17/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:名無しさん@お腹いっぱい。
17/03/10 09:16:11.80 .net
あれ?そうだよなと思ったら、pythonの文字コードの扱いが変でした
シェルごめんよ
972:名無しさん@お腹いっぱい。
17/03/10 13:07:41.33 .net
pythonのせいにするのもどうかと
973:名無しさん@お腹いっぱい。
17/03/10 16:08:16.57 .net
pythonは文字コード周り落とし穴が多いすぎ
pythonのせい
974:名無しさん@お腹いっぱい。
17/03/11 22:32:29.75 .net
$@から$1を除いたものを関数に渡す方法を教えてくだしあ
975:名無しさん@お腹いっぱい。
17/03/11 22:46:42.79 .net
shiftするしかないんじゃないかな
呼出し後に元に戻したいとするとsetかな
976:名無しさん@お腹いっぱい。
17/03/11 23:06:24.73 .net
呼び出し先でshiftすりゃいいじゃん
977:名無しさん@お腹いっぱい。
17/03/12 00:12:25.14 .net
せやな!
978:名無しさん@お腹いっぱい。
17/03/12 01:47:16.95 .net
>>957
bash なら "${@:2}" でええんちゃう
979:名無しさん@お腹いっぱい。
17/03/12 04:14:35.39 .net
>>961
その発想もなかった
パラメータとして渡すならこっちの方が分かりやすいな
980:名無しさん@お腹いっぱい。
17/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:名無しさん@お腹いっぱい。
17/03/12 20:09:10.06 .net
sed -n -e 's/foo/bar/g' -e '/hoge1/,/hoge2/p'
じゃだめなの?
982:名無しさん@お腹いっぱい。
17/03/12 20:49:35.74 .net
sed -ne '/hoge1/,/hoge2/{s/foo/bar/g;p;}'
でもいけそう
983:名無しさん@お腹いっぱい。
17/03/13 15:22:55.40 .net
sedスレあるのに忘れられてそうw
984:名無しさん@お腹いっぱい。
17/03/13 17:19:42.05 .net
sed -e '/hoge1/,/hoge2/!d' -e 's/foo/bar/g'
985:名無しさん@お腹いっぱい。
17/03/13 19:49:20.42 .net
ありがとうございます
さらに速くなりました
一番最後の文字はコマンドというのを実感
986:名無しさん@お腹いっぱい。
17/03/13 20:38:32.02 .net
sedは-n使ったら負け
987:名無しさん@お腹いっぱい。
17/03/15 13:36:43.93 .net
なんで?
988:名無しさん@お腹いっぱい。
17/03/15 13:37:42.13 .net
うるさい!
俺が負けだって言ったら負けなんだよ
大人しく言う事聞け
989:名無しさん@お腹いっぱい。
17/03/15 13:43:38.36 .net
なんだそのダメな親みたいな言い分は
990:名無しさん@お腹いっぱい。
17/03/15 13:45:42.22 .net
むしろジャイアンかな
991:名無しさん@お腹いっぱい。
17/03/15 16:27:57.38 .net
pでプリントした行は元質問にもあるようにストリームを流れて行かない、
お漏らししたようなものだからね
992:名無しさん@お腹いっぱい。
17/03/15 18:03:51.07 .net
sed だと、後方参照の時にバックスラッシュでエスケープしまくることになるのがどうにも…
それで、いつの間にか perl を代わりに使うようになった。
993:名無しさん@お腹いっぱい。
17/03/15 19:02:59.32 .net
sedでできることをperlでやるのは微妙に悔しいw
994:名無しさん@お腹いっぱい。
17/03/15 20:28:01.98 .net
sed -e "s/微妙に/非常に/" >976
995:名無しさん@お腹いっぱい。
17/03/15 20:45:20.13 .net
入力なくね?
996:名無しさん@お腹いっぱい。
17/03/15 20:58:18.06 .net
考えすぎ
997:名無しさん@お腹いっぱい。
17/03/16 12:44:27.48 .net
>>978
sed -e "s/微妙に/非常に/" <975 >976
ってやって空のファイルを作ってしまったあの頃...
998:名無しさん@お腹いっぱい。
17/03/16 12:47:16.46 .net
分からんでもない
999:名無しさん@お腹いっぱい。
17/03/16 16:23:09.20 .net
最初に head/tail、grep、sort 辺りを処理の都合上先にやることが多いので、
sed の入力にはパイプを使うことが多いかな。
1000:名無しさん@お腹いっぱい。
17/03/16 22:48:37.43 .net
日本語下手かw
1001:名無しさん@お腹いっぱい。
17/03/18 22:25:35.75 .net
grepしてsedは素人
1002:名無しさん@お腹いっぱい。
17/03/18 23:27:17.30 .net
なんで?
1003:名無しさん@お腹いっぱい。
17/03/19 00:04:19.09 .net
sedだけでできるからかと
1004:名無しさん@お腹いっぱい。
17/03/19 00:24:39.59 .net
grepである程度簡単なワードで絞ってからのほうが、複雑な置換は早そうだけど
1005:名無しさん@お腹いっぱい。
17/03/19 00:57:36.33 .net
実験して見せられるまで性能に関する予想は信じない
1006:名無しさん@お腹いっぱい。
17/03/19 01:06:54.08 .net
まぁこじらせた人にてみればその手間は実に腹立つだろうな
1007:名無しさん@お腹いっぱい。
17/03/19 10:07:51.17 .net
「ひとつのことを上手くやる」から考えると、grep してから sed の方がマッチしてそう
1008:名無しさん@お腹いっぱい。
17/03/19 11:41:33.99 .net
windowsのdos窓は使えるけれど、grep、sed、awk、perlなどはなし。当然他のスクリプト言語もなし。
さらに、新たなソフトのインスコはできない。
まあ、notepadでソースの編集はできる。
Eドライブには多くのフォルダがあって、中にはjpegのえろ画像が1テラ分てんこ盛り
えろ画像だけを全部Dドライブにコピーしたい。
Eドライブのフォルダを見ると8階層ぐらいのフォルダもあって、とても手作業のコピペはムリ。
にゃんとか目的を達成する方法はないであろうか?!
各位のお知恵を拝借したい。
1009:名無しさん@お腹いっぱい。
17/03/19 13:00:13.49 .net
powershell でも使えばいいんじゃないかな
1010:名無しさん@お腹いっぱい。
17/03/19 14:12:15.82 .net
ここじゃなくてもっと他に聞くべき所があるだろうな
1011:名無しさん@お腹いっぱい。
17/03/19 20:18:27.47 .net
その環境的な制限がありつつ、エロ画像を扱うという状況が想像できないな
仕事でエロ画像を扱ってるか上司の個人環境とかかな
1012:名無しさん@お腹いっぱい。
17/03/19 20:31:39.22 .net
robocopyでコピーすれば良い
1013:名無しさん@お腹いっぱい。
17/03/19 20:55:37.07 .net
>>988
GNU grep + GNU awk の場合だけど、GNU awk単独よりも早いらしいぞ
URLリンク(papiro.hatenablog.jp)
1014:名無しさん@お腹いっぱい。
17/03/19 22:03:55.18 .net
ドライブを別のPCからアクセス可能にしたらいいのに
1015:名無しさん@お腹いっぱい。
17/03/19 23:09:48.69 .net
>>996
timeの使い方を知らないって事を自慢してどうしたいんだ?
1016:名無しさん@お腹いっぱい。
17/03/19 23:10:46.82 .net
エロ画像に寛容なUNIX板
1017:名無しさん@お腹いっぱい。
17/03/20 10:44:19.74 .net
>>994
昔社内から netnews が見れてたので perl でスクリプト組んでエロ画像落としまくってたのをふと思い出した
当時は普通にFDに移動して持ち帰ってたけど
1018:名無しさん@お腹いっぱい。
17/03/20 12:06:05.49 .net
俺にはもうFDってのがもうすごいわ
1019:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています