[過去ログ] シェルスクリプト総合 その27 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
50(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/10(木) 00:34:52.62 AAS
>>4949(1): 名無しさん@お腹いっぱい。 [sage] 2018/05/10(木) 00:27:18.20 AAS
まあ、算術コマンド使ったほうがいいわな。
そうだね。
$ echo 3000/60 |bc
50
$ echo 4000/60 |bc
66
282(5): 名無しさん@お腹いっぱい。 [] 2018/06/08(金) 23:18:13.62 AAS
Excelから出力したCSVのように一行(?)の中に改行が含まれた
データを扱うにはどうしたら良いでしょうか?
もう少し具体的に書きます。
カンマ区切りのCSVデータだと仮定して、
シェルスクリプトの中に関数を一行ごとに呼び出し、
列を引数に対応させたいです。
例えば以下のような内容のファイルがあったとして
a1,a2,a3,a4
b1,b2,b3,b4
c1,c2,c3,c4
syori "a1" "a2" "a3" "a4"
syori "b1" "b2" "b3" "b4"
syori "c1" "c2" "c3" "c4"
という風にsyori関数を呼び出したいのです。
ただし実際には各項目(a1等の部分)にExcelから出力したデータのように
改行やカンマやダブルクォートやシングルクォートや空白が入ることがあるのです
504: 名無しさん@お腹いっぱい。 [sage] 2018/06/11(月) 14:11:48.62 AAS
>>502502(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/11(月) 14:09:05.24 AAS
>>500
特に指定がない部分に関しては、
自由に変えていいと言ったの
改行が含まれてるとか、カンマやダブルクォートが含まれてるとかは
指定されているので、そこは変えたら駄目
当たり前だろ、ガキみたいな言い訳すんな
これには同意する
変えてもいい/変えるべきなのは区切り文字。
589: 名無しさん@お腹いっぱい。 [sage] 2018/06/13(水) 08:38:00.62 AAS
いや読みにくいって話であってだな
608: 名無しさん@お腹いっぱい。 [sage] 2018/06/14(木) 18:54:32.62 AAS
コロンを含むディレクトリを$PATHに登録した場合ってどういう挙動になるんだろう
616(2): 名無しさん@お腹いっぱい。 [sage] 2018/06/14(木) 22:38:09.62 AAS
>>615615(1): 名無しさん@お腹いっぱい。 [sage] 2018/06/14(木) 22:32:42.05 AAS
パイプでなのでfindとhead が同時にプロセスとして存在
findが標準出力に出力するとパイプを通して/パイプとして繋がってるheadの標準入力に入力として
headが目的を達して終了=パイプが無くなる、だがしかし、findは出力を続けようとし出力しようとしたらパイプが壊れてるうううっ
普通何もしなくても、パイプが損失したらSIGPIPEが飛んできて(強制)終了するんだけど(フィルタとしてもなUNIX的な望ましいデフォルト動作)、なぜかSIGPIPE無視して続けようという謎動作?
findとheadが直接は繋がっていなくてかもしれんが。パイプの送出側がSIGPIPEを無視って謎動作なのは変わらないかな
basenameが標準出力につながってるだけだから、findはwriteしないのでSIGPIPEを受け取らないよ。
basenameが事故死したのをfindが報告してるだけ。
というわけで、basenameが事故死したらfindを続けるのをやめるようにしてみた。
この方が無駄にbasenameを続けるよりよかろう。
find /var \( -exec basename {} \; -o -quit \) | head
ただし、最初の事故死についてだけはfindがおせっかいに報告してしまう。
あとはまかせた。
888: 名無しさん@お腹いっぱい。 [sage] 2018/07/17(火) 14:31:39.62 AAS
それよりwebpackとやらについて説明しておくべきだったろ
聞き方が悪い
889: 名無しさん@お腹いっぱい。 [sage] 2018/07/17(火) 14:59:08.62 AAS
名前出てるんだから調べればいいだけだろ
912: 名無しさん@お腹いっぱい。 [sage] 2018/07/19(木) 10:34:16.62 AAS
>>902902(1): 名無しさん@お腹いっぱい。 [sage] 2018/07/18(水) 19:32:58.08 AAS
diff -r A B
でいいのでは?
Aにあるファイル名だけ比較したいんです
Bのなかにはほかにもファイルがあったりするので
diff A/$f B/$f
とか場合によっては
diff A/$f B/*/$f みたいなことがしたかったのです…
ls なり find なりの出力ファイル名を変数に取り出すのってやっぱり難しいんですね
諦めます
レスありがとうございました
932(1): 名無しさん@お腹いっぱい。 [sage] 2018/07/21(土) 13:29:23.62 AAS
>>926926(1): 名無しさん@お腹いっぱい。 [sage] 2018/07/20(金) 12:12:45.33 AAS
>>922
まさにシェルスクリプトがプログラム間連携のための言語だからだよ。
1000行以上にも及ぶ複雑なプログラム間連携処理を
シェルスクリプトで書く状況ってのは
モジュール分割に失敗してる可能性がきわめて高い。
100行くらいの単体でも十分に使えるシェルスクリプトが10個ならば問題ないが。
シェルスクリプトは現代的プログラミング言語の持つ数々の抽象化機能を
欠いていて大規模プログラミングに向かないことは常に意識するべき。
> 1000行以上にも及ぶ複雑なプログラム間連携処理を
> シェルスクリプトで書く状況ってのは
> モジュール分割に失敗してる可能性がきわめて高い。
だからシェルスクリプトでモジュール分割するんでしょ?
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s