1 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/03/20(月) 12:07:26.41 .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に逃げずにシェルスクリプトで処理するのが頭のいいやり方。 前スレ シェルスクリプト総合 その25 echo.2ch.net/test/read.cgi/unix/1439563321/
438 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/11/20(月) 18:39:46.60 .net] >>430 気にし過ぎだろ さっさと剃れよ
439 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/12/02(土) 09:15:00.24 .net] すみません、bashでタブ区切りのファイルを配列に取り込む際、空の列が詰めて格納されてしまいます そうならない方法はあるのでしょうか exec < file.tsv while read LINE do ARRAY=(${LINE}) done
440 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/12/02(土) 10:11:05.91 .net] >>433 変数の参照部分を引用符で囲むとか。 #!/bin/sh - exec < file.tsv while read LINE; do ARRAY=("$LINE") done echo "$ARRAY" IFS の値を空にするとか。 #!/bin/sh - IFS= exec < file.tsv while read LINE; do ARRAY=($LINE) done echo $ARRAY
441 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/12/02(土) 10:16:16.70 .net] あ,5ch ってコード貼るのまずいんだっけ。しくったな。 まあこんなくだらないコードに著作権云々関係ないかw
442 名前:名無しさん@お腹いっぱい。 [2017/12/02(土) 10:37:47.62 .net] >>433 bash なら mapfile がある(別名 readarray) -t オプションで各行末尾の改行を取除く mapfile -t ARRAY <file.tsv
443 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/12/03(日) 07:15:44.68 .net] 早速検証してみます、ありがとうございます!
444 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/12/05(火) 08:37:43.17 .net] 検証した結果、IFSを改行のみにして読み込み、その文字列をCutで抜くで達成できました こうしないと空文字の列が詰まってしまいました IFS_BAK=IFS IFS=$'¥n' exec < file.tsv while read LINE do echo "${LINE}" | cut -f1 >> tmp1.txt echo "${LINE}" | cut -f2 >> tmp2.txt done IFS=IFS_BAK
445 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/12/05(火) 09:20:20.37 .net] >>438 重箱の隅を突くようで悪いが,その書き方をするならシェバンは #!/usr/bin/bash にしておけ。 $'string' は Bash の独自拡張だった気がする。
446 名前:433 [2017/12/06(水) 10:04:48.53 .net] >>433 今ごろ勘違いに気づいた mapfileじゃ全然見当外れじゃないか…なんかごめん たとえば IFS=$'\t' line="${IFS}b" このとき a=(${line}) で a=("" "b") となるのを期待しているのだけど、実際にはクオートしていないので a=( b) と同じことになって、先頭の「空の列」は残らない かといってクオートしたら a=("${line}") これはタブ区切りで分割されることなく行全体がそのままになるので意味がない… ということだよね >>438 のようにファイルに書き出すだけなら、そう
447 名前:やってcutでやるのが扱いやすそうだけど もしどうしても配列にする必要があるときは、こんな感じでどうだろう https://ideone.com/uPfCwc 空だと消えてしまうなら空にならないよう何か入れとけばいいじゃない(配列にしてから取り除く) という案 [] [ここ壊れてます]
448 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/12/11(月) 05:34:31.40 .net] >>440 回答が遅れてすみませんでした なるほど…その手はいけるんですね ありがとうございます、活用させていただきます 自分は今回縛りがあってbashだけでやっているのですが、可能なら他のスクリプトに任すべきかな…(´・ω・`)
449 名前:名無しさん@お腹いっぱい。 mailto:sage [2017/12/14(木) 00:31:41.37 .net] そこは「他のシェルに」じゃないか
450 名前:名無しさん@お腹いっぱい。 [2017/12/29(金) 06:50:06.02 .net] 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 PPEE18BYYA
451 名前:名無しさん@お腹いっぱい。 [2018/01/08(月) 17:53:30.81 .net] はじめまして 早速で申し訳ないのですが、以下のシェルスクリプトでdoを含むコマンドが一切使用できません。理由と解決策を教えてください。 #!/bin/sh dir=`dirname ${0}` echo -n "探す拡張子=" read que ans=$(find ${dir} -name *.${que} | awk -F/ '{print $NF}') if [ -z "${ans}" ];then echo "${que}は見つかりませんでした。\n終了します。" exit else echo "${ans}" fi
452 名前:名無しさん@お腹いっぱい。 [2018/01/08(月) 17:59:26.22 .net] >>444 すみません訂正します。 select文のみどこに書いてもSyntax error: "do" unexpectedというエラー出てしまいます。
453 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/08(月) 18:43:33.26 .net] doが何のこと言ってるのかよくわからんが実行の仕方が間違ってんじゃね まず問題がどこにあるかを明確に切り分けろ
454 名前:名無しさん@お腹いっぱい。 [2018/01/08(月) 20:31:51.74 .net] >>446 さっき書き直したのですが、改善しませんでした。 エラー内容はさっきと同じで、 Syntax error: "do" unexpectedです。 441でも、どこに記述しても変わらなかったため、問題の部分を消して使っていたので、doの部分を貼り忘れてました。すみませんでした。 #!/bin/sh dir=`dirname ${0}` echo -n "検索する拡張子:" read que while [ -z "${que}" ] do #ここのdoは問題なし。 echo -n "拡張子を入力してください。\n検索する拡張子:" read que done ans=$(find ${dir} -name *.${que} | awk -F/ '{print $NF}') if [ -z "${ans}" ];then echo "${que}は見つかりませんでした。\n終了します。" exit else echo "${ans}" fi #============ここから問題の部分=========== select var in ${ans}終了 do if [ ${var} = 終了 ];then exit fi if [ ${que} = gz -o xz];then tar -xf ${dir}${var} fi done
455 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/08(月) 20:59:27.67 .net] xz ]やないの? シンタックスエラーって出てるんだからまず自分を疑おう
456 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/08(月) 21:01:57.76 .net] どこに貼ってもだめならselectの構文がなんかおかしいんじゃないの
457 名前:名無しさん@お腹いっぱい。 [2018/01/08(月) 21:16:18.25 .net] >>448 スペース入れても変わりませんでした。 >>449 構文がおかしい部分を自分では見つけられませんでした。
458 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/08(月) 21:41:13.34 .net] do unexpectedなら直前の「${ans}終了」ちゃうんけ
459 名前:名無しさん@お腹いっぱい。 [2018/01/08(月) 22:01:36.46 .net] >>451 変数じゃなくしても、終了を消しても、別の変数に変えてもSyntax error: "do" unexpectedは消えませんでした。
460 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/08(月) 22:17:55.91 .net] とりあえず「間違いなく動作する」select構文をまず単品で書け ネットのコピペでも構わん。出来る限りシンプルなやつで 動いたならそれを少しずつ改造して動かしてを繰り返しつつお前の目的に近づけろ
461 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/08(月) 22:28:27.56 .net] shでselectってできたっけ
462 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/08(月) 23:44:18.33 .net] SC2039: In
463 名前: POSIX sh, select loops are undefined. bashならとりあえず動く、#!/bin/bash にしとけば [] [ここ壊れてます]
464 名前:名無しさん@お腹いっぱい。 [2018/01/08(月) 23:56:10.56 .net] >>453 ありがとうございます。コピペ&作り直しでできました。 >>454 Ubuntuでやっていたのでできました。 >>455 書き換えました。 皆様ありがとうございました。 もしかしたら似たようなものがすでにあるかもしれませんが、とりあえずできたものを>>454 に貼っておきます。
465 名前:名無しさん@お腹いっぱい。 [2018/01/08(月) 23:57:24.21 .net] #!/bin/bash PS3="入力してください:" menu="曖昧 前方一致 後方一致 完全一致 拡張子" echo "検索するディレクトリを入力してください 入力しなかった場合、このファイルがあるディレクトリを検索します。" while [ -z "${dir}" ] do echo -n "ディレクトリ入力:" read dir if [ -e "${dir}" ];then break else unset dir echo "そのようなディレクトリはありません。" fi done echo "検索方法を選択してください:" >>455 に続く
466 名前:名無しさん@お腹いっぱい。 [2018/01/08(月) 23:58:02.00 .net] >>457 続き select var in ${menu} do echo ["${var}"]で検索します。 echo -n "検索する単語を入力してください:" read que case "${var}" in 曖昧) ans=$(find ${dir} -name *"${que}"*);; 前方一致) ans=$(find ${dir} -name "${que}"*);; 後方一致) ans=$(find ${dir} -name *"${que}");; 完全一致) ans=$(find ${dir} -name "${que}");; 拡張子) ans=$(find ${dir} -name *."${que}");; esac echo "${ans}" exit done
467 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/09(火) 07:32:28.94 .net] 正直見辛いしその程度なら一行コマンド打つんでいらないっす
468 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/09(火) 12:43:53.77 .net] * が展開されてうまく動かなかった
469 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/09(火) 20:01:44.41 .net] Linuxの話ならLinux板で聞いてください
470 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/10(水) 13:12:44.56 .net] odコマンドって規定で行番号は付くは省略するわでほんとUNIX哲学的じゃねーな xxdとかのほうが遥かに扱いやすいわ
471 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/10(水) 16:21:53.96 .net] 行番号ちゃうし
472 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/11(木) 12:57:39.11 .net] od -An -v
473 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/13(土) 15:24:43.34 .net] 規定がっていう話でしょ それと同じで ls も規定で勝手に表示を整えるのをやめてほしい。 Plan 9のlsは規定でls -1みたいな挙動らしいけど。
474 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/13(土) 15:30:27.80 .net] 規定なら従っといた方がいいじゃん 罰則あるかもしれんし
475 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/13(土) 15:31:53.68 .net] それは規約じゃ
476 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/13(土) 19:01:27.06 .net] default = 既定
477 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/13(土) 22:58:37.21 .net] 違反すると罰則あるのは規定じゃなくて規約だろって話
478 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 10:57:30.90 .net] だから「Default=規定」って書いたんじゃねーの? 規約じゃないって意味で。
479 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 11:45:22.78 .net] ワケワカメ
480 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 15:52:04.52 .net] なんだこの流れ 全員頭悪いの?
481 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 16:00:17.68 .net] 流れ?
482 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 16:20:16.87 .net] 全次郎?
483 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 17:49:06.78 .net] 規約じゃなくて規定なら別に従う必要ないって話なだけじゃないのか
484 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 17:50:28.44 .net] default=既定≠規定
485 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 19:12:18.41 .net] >>465 の誤字を>>466 が茶化したのに理解されずにグダグダになった流れ
486 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 19:28:08.33 .net] すまん誤字に全く気付かなかった
487 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/14(日) 19:34:54.90 .net] あーなるほどそういうことか。 普通に「既定」に脳内変換してたせいで意味不明な喧嘩に見えてたわ
488 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/15(月) 00:06:01.79 .net] 脳内変換てw馬鹿なだけやんかw
489 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/15(月) 08:02:47.35 .net] すぐそうやって火種を撒く……
490 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/15(月) 22:28:34.05 .net] $'\n' こういう $'何か' っていう書き方って bash 限定? sh でもいける?
491 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/16(火) 12:48:12.73 .net] bash限定
492 名前:名無しさん@お腹いっぱい。 mailto:age [2018/01/16(火) 15:07:55.74 .net] POSIX xargs pubs.opengroup.org/onlinepubs/9699919799/utilities/xargs.html には-0オプションがありませんが,どうにかしてxargsにナル文字区切りのデータを渡せませんかね。 もしくは xargs -0 がエラーになるOSをご存知でしたら教えて下
493 名前:さい。 FreeBSD, MacOS, Debian GNU/Linuxともにxargsに-0オプションはありました。 [] [ここ壊れてます]
494 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/16(火) 16:09:39.07 .net] Solarisとかあやしそうだね
495 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/17(水) 00:51:10.26 .net] >>485 そうみたいね https://unix.stackexchange.com/questions/67193/solaris-xargs-command-for-solaris https://docs.oracle.com/cd/E19253-01/819-1210/6n3j74k03/index.html
496 名前:481 mailto:sage [2018/01/17(水) 04:46:35.14 .net] >>485 >>486 ありがとうございます。 ファイルパスに関するシェルスクリプトを作ろうとしており, ファイル名に改行文字が含まれている場合を考慮してナル文字区切りでデータを扱いたかったのです。 が,もうそんな特殊なファイル名にしている側の責任ってことにします。 仕事だったらもうちょっと考えるところですが個人で扱うので自分が気をつければいいだけなんで。 リンク等ありがとうございました。
497 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/17(水) 08:37:13.99 .net] pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html POSIXのfindには+終端もあるみたいだから、 用途によってはxargsを使わずに変なファイル名が扱えることもある。 例によってSolarisにはないが、POSIXに準拠してないということで切れる。
498 名前:481 mailto:sage [2018/01/17(水) 09:45:47.24 .net] >>488 ありがとうございます。 > 例によってSolarisにはないが、POSIXに準拠してないということで切れる。 恥かしながらSolaisってPOSIX準拠を謳っていないことを今知りました…… よくシステムコールAPIの説明で「SolaisまたはPOSIX」とありますが, その真意をようやく掴めました。 --- awkのRSにナル文字を指定できればxargsの代替として使えるかもしれないと思ったんですが, $ printf '%s\0%s\0%s' 'First' 'Second' 'Third' | awk -v RS="$(printf '\0')" '{ print $0 }' みたいなことをやっても撥ねられる (シェルがナル文字についての警告を出して,「FirstSecondThird」とだけ表示される) のでやっぱりナル区切りを扱うのはやめておこうと思いました。 大人しく空白区切り・改行レコードで行きます。
499 名前:481 mailto:sage [2018/01/17(水) 09:55:31.15 .net] なんかこうすると上手く行った (ように見えます)。 $ printf '%s\0%s\0%s' 'First' 'Second' 'Third' | \ awk ' \ BEGIN { RS="\0" ORS="\n" } { print } \ ' なんでこれが良くて >>489 がだめなのか分からないのが怖いので結局ナル文字区切りはやめることにしました。 連投&スレ汚し失礼しました。
500 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/18(木) 11:41:43.86 .net] sedでiフラグをdフラグと一緒に使うことはできないのでしょうか。
501 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/18(木) 11:44:10.00 .net] ↓ sed mevius.2ch.net/test/read.cgi/unix/1085730992/
502 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/18(木) 19:40:41.47 .net] >>492 誘導ありがとうございます。一応の解決を見ました。
503 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/26(金) 00:50:46.41 .net] hoge.sh <(cat hoge.txt fuga.txt piyo.txt) ### hoge.sh #!/bin/bash wc -l $1 # 正しい行数 wc -l $1 # なぜか0 おせーてエロいひと
504 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/01/26(金) 06:57:46.46 .net] >>494 つ cat hoge.txt fuga.txt piyo.txt | (wc -l; wc -l)
505 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/01(木) 22:35:58.02 .net] こういうhoge.shがあったとして ``` #!/bin/bash set -x for x in aa bb cc; do echo $x done ``` 実行するとこうなる ``` $ bash hoge.sh + for x in aa bb cc + echo aa aa + for x in aa bb cc + echo bb bb + for x in aa bb cc + echo cc cc ``` けどこうしたい(forやifが出力されないようにしたい) ``` $ bash hoge.sh + echo aa aa + echo bb bb + echo cc cc ``` どうしたらいい?
506 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/01(木) 22:38:33.65 .net] つづき。ためしにこうしてみた ``` #!/bin/bash for x in aa bb cc; do set -x echo $x set +x done ``` 実行したら set +x も表示された(これは
507 名前:いらない) ``` $ bash hoge.sh + echo aa aa + set +x + echo bb bb + set +x + echo cc cc + set +x ``` [] [ここ壊れてます]
508 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/01(木) 22:40:28.83 .net] grep -vでもしたら
509 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/01(木) 23:21:30.45 .net] echo $x の前に echo + echo $x と記述する
510 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/01(木) 23:48:49.07 .net] bashだからじゃね?
511 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/02(金) 01:26:01.46 .net] fishてどう?
512 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/02(金) 01:47:58.90 .net] $ cat hoge.sh #!/bin/bash for x in aa bb cc; do (set -x echo $x) done $ bash hoge.sh + echo aa aa + echo bb bb + echo cc cc なんつって
513 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/02(金) 08:54:06.42 .net] >>502 > (set -x > echo $x) この方法でできました。ありがとうございます。 もっと簡潔に書けるといいのだけど。
514 名前:名無しさん@お腹いっぱい。 [2018/02/08(木) 16:21:59.61 .net] すんませんけど 今割り当て端末数からこんな感じでサブネットマスクを出すのを作ったんですけど i=256;j=0 ; while [ ! $i -eq 1 ] ; do i=$(( $i /2 ));echo $i; j=$(($j + 1)) ; done ;echo ans:$((32 - $j)) もっとてっとり早く出すコマンドはありませんか? できれば256を入れたら8とかさっさと返してくれるような奴を あとよくわからんけど 計算で256と2を入力したら後ろの8とかを出すコマンドはないですか? 覚えるとか調べるは嫌いなんで、なるべく手間のかからないものを教えてください
515 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/08(木) 17:19:18.65 .net] サブネットマスクぐらい暗記か手計算しろよ
516 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/08(木) 18:06:11.03 .net] >覚えるとか調べるは嫌いなんで、 生きてる意味あんのか、これで?
517 名前:名無しさん@お腹いっぱい。 [2018/02/08(木) 19:05:19.51 .net] >>505 手間がかかるから面倒だよ 20万以上やるし ああ これででるのね うしろに変なゴミが付いてるがどうでもいいか :echo " l(65556)/l(2)" | bc -l 16.00044020841915062248 :echo " l(1024)/l(2)" | bc -l 10.00000000000000000010 >>506 また努力するするのが誇らしいとか思ってる馬鹿?ww 俺が考えるならこの機械とか利用価値はないよ ゲーム開発のUNITYのスレに行けば似たような奴が沢山いるよ まぁしばらくはマシーンを買う金がないからlinuxとイヤイヤ付き合うしかないが ほんと手間がかかるな
518 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/08(木) 19:20:30.57 .net] ある意味面白いやつだな
519 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/08(木) 20:11:48.67 .net] >また努力するするのが誇らしいとか思ってる馬鹿?ww こんなこと考えたこともないけど 思い込みが激しいっていうか頭腐ってるだろ ああ死んでるんだったっけ
520 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/08(木) 20:31:31.63 .net] 落ち着け
521 名前:名無しさん@お腹いっぱい。 [2018/02/08(木) 20:57:59.75 .net] >>509 そういう手間が掛かるのはちょっと… 利用価値がないし
522 名前:名無しさん@お腹いっぱい。 [2018/02/08(木) 21:47:56.46 .net] バイト雇って計算してもらいましょう
523 名前:名無しさん@お腹いっぱい。 [2018/02/08(木) 23:17:47.05 .net] >>512 俺自体が無職だよ さて間抜けからビットコインを盗まんと
524 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/09(金) 01:51:26.42 .net] >>513 頼むわ 間抜けは存在自体がガンだから
525 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/09(金) 09:19:26.94 .net] 犯罪の予告と教唆かよ
526 名前:名無しさん@お腹いっぱい。 [2018/02/09(金) 22:09:51.06 .net] >>515 予告と教唆じゃなくて実行中だよ とろくさいやつだなw or2.mobi/index.php?mode=image&file=193749.jpg or2.mobi/index.php?mode=image&file=193750.jpg 3週間たってだいぶリナックスにも慣れてきた ある程度稼がせてもらったらウインドウズに戻るよ ライブは少し使いにくい
527 名前:名無しさん@お腹いっぱい。 [2018/02/09(金) 22:12:54.21 .net] なんかシェルスクリプト総合とか書いてあったから来てみたけど しょぼそうな連中しか居ないけど… ここのひとってシステム管理とかで食ってる連中が多いの?
528 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/09(金) 22:39:19.88 .net] 煽ったらなんかもらえるのか?
529 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/09(金) 22:54:21.43 .net] なんか急に変なの出てきたな どっかにスレのアドレスでも貼られたのか
530 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/10(土) 00:05:29.76 .net] いや元々お前らの方がずっと変だけどw
531 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/10(土) 05:51:23.70 .net] 変と思いながら見続けて今さあながら「変だ!変だ!」と言う人って・・・ まあ相手にされるかは別にして居たいなら居ていいと思うよ
532 名前:名無しさん@お腹いっぱい。 [2018/02/10(土) 11:31:48.71 .net] >>517 面白いネタがあれば食いつくんじゃない? つまらんネタしか無いから過疎ってる。
533 名前:名無しさん@お腹いっぱい。 [2018/02/10(土) 19:55:51.78 .net] ほんとに揃いも揃っておまえらは無能な連中だよ こんな能無し共が良いかねを取って裕福な生活をしてるのに 何で俺がしこしこビットコインを盗まんとならんのか…… よしよしw 今日はあがりはデカそうだな
534 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/15(木) 20:16:20.69 .net] 1111 2222 3333 という内容のファイルに対して, • 3333 が見付かれば 3333 を, • 見付からなければ 2222 を • ⋮ という操作を施したいです。そして,これをパイプに繋ぎたいです。 私が考えたのは↓のスクリプトですが, for q in 3333 2222 1111; do cat <<-'EOF' | 1111 2222 3333 EOF grep $q && break done 難点があります。 1. パイプでファイルを渡せない。 2. 順番に依存している (実際のファイルでは 3333 が最後にくるとは限らない) どうか助言願います
535 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/15(木) 20:19:41.66 .net] あ,すいません。期待する動作は, かりに理想のスクリプトを idea.sh として, $ cat ./org.txt 2222 3333 1111 $ cat ./org.txt | idea.sh 3333 $ cat ./org.txt | sed -e '/3333/d' | idea.sh 2222 $ cat ./org.txt | sed -e '/3333/d' -e '/2222/d' | idea.sh 1111 という感じです。
536 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/15(木) 21:01:11.15 .net] 標準入力を受け取れるように作ればいいんじゃないの? idea.sh sed -e "/$1/d" < /dev/stdin $ cat ./org.txt | ./idea.sh ‘3333’ | ./idea.sh ‘2222’ | ./idea.sh ‘1111’
537 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/15(木) 21:10:36.33 .net] awk使うのが妥当。 awkが嫌なら、標準入力をファイルにコピーしてから複数回に分けて処理するしかないな。
538 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/02/15(木) 21:26:45.83 .net] やりたい事はシンプルなのに標準入力使おうとしてるせいで妙に面倒になってるな awkかgrepでよさそうだが