シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
FreeBSDユーザは/bin/shの正体がashなので注意。
v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
http://src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
(理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
manや参考リンクを見ましょう。
aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
「そういうのはperl使いましょう」と回答するのはやめましょう。
安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その25
http://echo.2ch.net/test/read.cgi/unix/1439563321/
探検
シェルスクリプト総合 その26 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2017/03/20(月) 12:07:26.41
2018/03/28(水) 14:37:11.36
>>748
なぜ/usr/remote/binじゃダメなのか 理由を知りたい
なぜ/usr/remote/binじゃダメなのか 理由を知りたい
2018/03/29(木) 01:01:26.37
2018/03/29(木) 02:51:11.17
findのprint0やった、NULL文字区切りのファイル名一覧って
POSIXのreadじゃ読み取れないんだな-dオプションがないから
つーことはファイル名に改行、そのた制御文字が入るかもしれないことを
考慮するとPOSIXの範囲じゃ対応不可能ってことなのか
POSIXのreadじゃ読み取れないんだな-dオプションがないから
つーことはファイル名に改行、そのた制御文字が入るかもしれないことを
考慮するとPOSIXの範囲じゃ対応不可能ってことなのか
2018/03/29(木) 03:44:39.70
2018/03/29(木) 09:47:58.90
2018/03/29(木) 09:57:03.22
\0区切りもshそのものの機能じゃなくね?
2018/03/29(木) 10:03:19.16
空白制御文字入りファイル名は
for i in *
で扱えるので、工夫次第だな。
findと組み合わせるには-print0は役に立たんから-execで頑張るしかないけど。
for i in *
で扱えるので、工夫次第だな。
findと組み合わせるには-print0は役に立たんから-execで頑張るしかないけど。
2018/03/29(木) 10:30:24.37
\0区切りがなんのコマンドによる出力かどうかは
今は関係ないんだよ。
いろんなコマンドでよく使われる\0区切りのデータに
shが対応していないって話をしているんだから
で調べてみたらawkもポータブルな方法では
\0区切りには対応してないようだな
今は関係ないんだよ。
いろんなコマンドでよく使われる\0区切りのデータに
shが対応していないって話をしているんだから
で調べてみたらawkもポータブルな方法では
\0区切りには対応してないようだな
2018/03/29(木) 11:35:38.17
2018/03/29(木) 11:37:07.53
2018/03/29(木) 11:39:23.23
MacOSのsed (bsd)も\0扱えないっぽい
まあもともと\0はC言語の終端文字だしな
そんなのが扱えるほうがおかしいか
まあもともと\0はC言語の終端文字だしな
そんなのが扱えるほうがおかしいか
2018/03/29(木) 11:44:03.16
2018/03/29(木) 11:51:22.35
>>766
改行じゃなくて \0 の話をしてるのか。
POSIXではシステムコールの仕様上、 \0 をファイル名に入れることは決してできない。
だから、ファイル名に \0 を使う話をすること自体が、POSIX的にナンセンス。
改行じゃなくて \0 の話をしてるのか。
POSIXではシステムコールの仕様上、 \0 をファイル名に入れることは決してできない。
だから、ファイル名に \0 を使う話をすること自体が、POSIX的にナンセンス。
2018/03/29(木) 11:55:53.07
2018/03/29(木) 11:59:26.26
2018/03/29(木) 12:20:16.06
は?バカなのかこいつ?
2018/03/29(木) 12:38:36.81
なんで改行の入ったファイル名を扱うために、シェルが \0 を文字列の一部として
扱う必要があるなんていうアサッテの発想にいたるのか…
(まあプログラミングができないせいで分かってないんだろうけど)
もうちょっと態度がまともなら、ポータブルなやり方を具体的に教えてやっても
いいが、 >>770 みたいな煽りは嫌いなので教えてやらないw
扱う必要があるなんていうアサッテの発想にいたるのか…
(まあプログラミングができないせいで分かってないんだろうけど)
もうちょっと態度がまともなら、ポータブルなやり方を具体的に教えてやっても
いいが、 >>770 みたいな煽りは嫌いなので教えてやらないw
2018/03/29(木) 12:40:47.01
findのprint0で出てくる/0区切りのファイル名一覧がreadで読み取れないンゴ…
2018/03/29(木) 12:50:37.16
そもそも -print0 の出力をそのままの形でポータブルに
read で読めるんじゃないかと考えること自体が間違い。
POSIXで規定されている read のオプションは -r だけで
-d はないので、改行を含む文字列をそのままで read だけを
使って単一の文字列変数に取り込むことは、ポータブルには
できない。
もちろん、だからといって sh で改行を含む文字列を扱えない
なんてことにはならないのは言うまでもない。
read で読めるんじゃないかと考えること自体が間違い。
POSIXで規定されている read のオプションは -r だけで
-d はないので、改行を含む文字列をそのままで read だけを
使って単一の文字列変数に取り込むことは、ポータブルには
できない。
もちろん、だからといって sh で改行を含む文字列を扱えない
なんてことにはならないのは言うまでもない。
2018/03/29(木) 12:54:44.85
>>771
無知ごくろうさんw
無知ごくろうさんw
2018/03/29(木) 12:56:17.18
やっと>>757が言ったことに追いついたのか?
2018/03/29(木) 13:05:43.31
773って757が言ったことを冗長に言い換えただけだなw
2018/03/29(木) 13:11:26.76
2018/03/29(木) 13:21:49.15
> findのprint0やった、NULL文字区切りのファイル名一覧って
> POSIXのreadじゃ読み取れないんだな-dオプションがないから
ここまでは正しい。しかし、
> つーことはファイル名に改行、そのた制御文字が入るかもしれないことを
> 考慮するとPOSIXの範囲じゃ対応不可能ってことなのか
これが xargs の文章であれば、その通り。
しかしこれが sh についての文章であれば、完璧に間違い。
これだけ繰り返し指摘されてもいまだに理解できないような奴でも
Bourne shell でスクリプトを書くようになったんだなという変な感慨があるな。
> POSIXのreadじゃ読み取れないんだな-dオプションがないから
ここまでは正しい。しかし、
> つーことはファイル名に改行、そのた制御文字が入るかもしれないことを
> 考慮するとPOSIXの範囲じゃ対応不可能ってことなのか
これが xargs の文章であれば、その通り。
しかしこれが sh についての文章であれば、完璧に間違い。
これだけ繰り返し指摘されてもいまだに理解できないような奴でも
Bourne shell でスクリプトを書くようになったんだなという変な感慨があるな。
2018/03/29(木) 13:24:21.25
2018/03/29(木) 13:26:26.64
>>778はxargsが\0扱えることも知らなそうw
2018/03/29(木) 13:30:47.80
これだけヒント書いてるのに、いまだに
「そのままの形だと read で扱えない」
と
「sh だとできない」
が等価だと主張しているのは、アホの子なのか、
煽れば答を教えてもらえると期待しているのか、
どっちなんだろうね。
「そのままの形だと read で扱えない」
と
「sh だとできない」
が等価だと主張しているのは、アホの子なのか、
煽れば答を教えてもらえると期待しているのか、
どっちなんだろうね。
2018/03/29(木) 13:36:00.29
>>780
POSIX の xargs に -0 オプションは規定されてないので、
「ポータブル」という条件下ではできない。
まあ POSIX の find に -print0 オプションが入ったのもわりと最近なので、
そのうち xargs でも待ってればそのうち -0 が追加されるとは思うが。
POSIX の xargs に -0 オプションは規定されてないので、
「ポータブル」という条件下ではできない。
まあ POSIX の find に -print0 オプションが入ったのもわりと最近なので、
そのうち xargs でも待ってればそのうち -0 が追加されるとは思うが。
2018/03/29(木) 13:39:13.18
答えはfor in * を使うこと
俺が代わりに答えておいてやるよ
なおshで\0を使うと言う答えではない
俺が代わりに答えておいてやるよ
なおshで\0を使うと言う答えではない
2018/03/29(木) 13:41:04.45
POSIXはprint0に対応する前に
ファイル名に制御文字を使用できないようにしろ
ファイル名に制御文字を使用できないようにしろ
2018/03/29(木) 13:53:52.47
賛成
2018/03/29(木) 14:01:21.67
for使ってfindっぽいものを自作したとして
それをパイプで別コマンドに流そうとした時に
またファイル名に改行が含まれていた時問題が発生するんだよな
それをパイプで別コマンドに流そうとした時に
またファイル名に改行が含まれていた時問題が発生するんだよな
2018/03/29(木) 15:15:24.81
for で書くのなら、その結果のファイル名をわざわざ
他のプロセスにパイプで渡すなんてことはせずに、
そのシェル自身で処理するか、
あるいは他のプロセスに渡すなら引数を使え
ってだけの話だな。
>>761 が既に書いてる話なのに、なんでそこから
35コメも無駄に費やされてるんだか。
他のプロセスにパイプで渡すなんてことはせずに、
そのシェル自身で処理するか、
あるいは他のプロセスに渡すなら引数を使え
ってだけの話だな。
>>761 が既に書いてる話なのに、なんでそこから
35コメも無駄に費やされてるんだか。
2018/03/29(木) 15:18:45.25
ちなみに for で書く以外のやりかたもあるけど、
これも >>761 が既に最後の文で書いてる。
これも >>761 が既に最後の文で書いてる。
2018/03/29(木) 15:30:33.97
posixの範囲じゃ改行が含まれたファイル名を
パイプでつなげられないってことかな
パイプでつなげられないってことかな
2018/03/29(木) 15:56:18.36
>>789
「POSIXの範囲内じゃ」は誤解を招く表現で、正確には
「POSIX Shell & Utilities の範囲内じゃ」だな。
「POSIX System Interfaces」を使えば問題なくできるからな。
まあシェルのスレなわけで「POSIXの範囲内じゃ」でも間違いとまでは言えないが。
あと、find -print0 が POSIX で規定されたってのは間違いだった。
そういう拡張もあることも言及はされてるが、規定には追加されていない。
でもって POSIX 的には「find -print0 | xargs -0」じゃなくて、
「find -exec コマンド {} +」を使えってことになってる。
「POSIXの範囲内じゃ」は誤解を招く表現で、正確には
「POSIX Shell & Utilities の範囲内じゃ」だな。
「POSIX System Interfaces」を使えば問題なくできるからな。
まあシェルのスレなわけで「POSIXの範囲内じゃ」でも間違いとまでは言えないが。
あと、find -print0 が POSIX で規定されたってのは間違いだった。
そういう拡張もあることも言及はされてるが、規定には追加されていない。
でもって POSIX 的には「find -print0 | xargs -0」じゃなくて、
「find -exec コマンド {} +」を使えってことになってる。
2018/03/29(木) 16:20:44.05
でも、find -exec じゃシェル関数に渡せないからなぁ
findは諦めろってことかな
findは諦めろってことかな
2018/03/29(木) 16:44:16.87
find を諦めるんじゃくて、シェル関数の方をあきらめて、独立したシェルスクリプトにしろってことだよ。
find -exec コマンド {} \;
だとコマンドの起動回数が多いからシェルスクリプトにすると遅いのが問題になるけど、
find -exec コマンド {} +
ならコマンド起動回数は相当に減るから、独立したシェルスクリプトにしても特に問題はない。
find -exec コマンド {} \;
だとコマンドの起動回数が多いからシェルスクリプトにすると遅いのが問題になるけど、
find -exec コマンド {} +
ならコマンド起動回数は相当に減るから、独立したシェルスクリプトにしても特に問題はない。
793名無しさん@お腹いっぱい。
2018/03/29(木) 21:07:16.05 AWKの区切り記号をヌル文字にすればいいんでは。
2018/03/29(木) 23:50:16.88
ぬるぽ?
2018/03/30(金) 00:19:50.52
2018/03/30(金) 02:47:00.90
2018/03/30(金) 03:18:23.09
OSっていうかGNU系かどうかだね
GNU系はだいたい\0に対応している
BSD系とかは対応してない。だからMacとかつらい
私的なスクリプトならMacのコマンドをGNU化するやつ
入れて済ませても良いんだが
GNU系はだいたい\0に対応している
BSD系とかは対応してない。だからMacとかつらい
私的なスクリプトならMacのコマンドをGNU化するやつ
入れて済ませても良いんだが
2018/03/30(金) 12:29:37.47
>>792
バカwww
バカwww
2018/03/30(金) 12:30:43.62
このスレでこんなに草を見るとは思わなかった
2018/03/30(金) 13:42:54.12
シェル関数にこだわる理由が思いつかん。
2018/03/30(金) 15:22:07.88
そこにシェルスクリプトがあるから、的な何かかな?
2018/03/30(金) 15:47:33.25
コンパイルせずに実行できる(実質)唯一の共通規格言語だからじゃないの?
PythonとかはPOSIXの範囲外だからどこでも動くとは限らないし。
え? UNIX™なのにPOSIXと齟齬ありまくりの実装のAIXちゃん? 知らない子ですねぇ……。
PythonとかはPOSIXの範囲外だからどこでも動くとは限らないし。
え? UNIX™なのにPOSIXと齟齬ありまくりの実装のAIXちゃん? 知らない子ですねぇ……。
2018/03/30(金) 16:25:04.06
localみたいにPOSIXじゃないけどだいたい
使えるってもの他にあったら教えて📡
使えるってもの他にあったら教えて📡
2018/03/30(金) 16:38:24.19
AIXはマジでどうにかして欲しい
seqすらないの本当に面倒臭い
seqすらないの本当に面倒臭い
2018/03/30(金) 17:03:19.85
AIX案件なんてあるの?
2018/03/30(金) 17:23:17.72
2018/03/30(金) 17:29:23.50
2018/03/30(金) 20:26:28.33
2018/03/30(金) 20:31:30.33
シェル函数って
somefunc() {
echo "This is somefunc."
}
っていうやつでしょ?
>>791はそういう意味で使ったんじゃない可能性が出てきたな。
単に「パイプに渡せない」というような趣旨の要望を言いたかったのかもしれん。
somefunc() {
echo "This is somefunc."
}
っていうやつでしょ?
>>791はそういう意味で使ったんじゃない可能性が出てきたな。
単に「パイプに渡せない」というような趣旨の要望を言いたかったのかもしれん。
2018/03/30(金) 20:47:44.46
2018/03/30(金) 20:54:31.32
たとえパイプ経由でファイル名を渡せないって意味だったとしても、
find -exec でそれと同一機能が実現できるならそ別にいいじゃん。
>>791が find -exec の何を気に入らないのかやっぱり分からんな。
find -exec でそれと同一機能が実現できるならそ別にいいじゃん。
>>791が find -exec の何を気に入らないのかやっぱり分からんな。
2018/03/30(金) 21:02:32.72
まぁでも「気に入らない」ってのは十分不採用の理由にはなるよな
2018/03/30(金) 21:09:13.58
趣味なら理由になるかもなあ。
でも仕事じゃ理由にならん。
要件を満たしてるってのは仕事じゃ最低限度の基準だからな。
POSIXに適合するシェルスクリプトにしたいっていう要件が最初に出てるのに、
趣味に合わないから採用しない、仕方ないから実装を諦めるなんて奴がいたら、
仕事なら無能扱いだよ。
でも仕事じゃ理由にならん。
要件を満たしてるってのは仕事じゃ最低限度の基準だからな。
POSIXに適合するシェルスクリプトにしたいっていう要件が最初に出てるのに、
趣味に合わないから採用しない、仕方ないから実装を諦めるなんて奴がいたら、
仕事なら無能扱いだよ。
2018/03/30(金) 21:13:23.18
そりゃ仕事と趣味は別だろ
何を当たり前の話をしてるんだ
何を当たり前の話をしてるんだ
2018/03/30(金) 21:31:21.92
いや、あの謎のこだわりに合理的な理由があるのか、
それともホントに完全に趣味だけの話なのかが気になってたんだよ。
合理的理由ナシ、完全に個人の趣味ってことでFAなら、それでいいんだスマン。
それともホントに完全に趣味だけの話なのかが気になってたんだよ。
合理的理由ナシ、完全に個人の趣味ってことでFAなら、それでいいんだスマン。
2018/03/31(土) 00:46:42.95
合理的じゃないけど合理主義だよね
2018/03/31(土) 01:12:03.45
aliasって面白いなー。これでなんか面白いことできそう
#!/bin/sh
alias foo="foo() { echo before; foo_; echo after; }; foo_"
foo() {
echo foo
}
unalias foo
foo
# ↓
# before
# foo
# after
#!/bin/sh
alias foo="foo() { echo before; foo_; echo after; }; foo_"
foo() {
echo foo
}
unalias foo
foo
# ↓
# before
# foo
# after
818817
2018/03/31(土) 01:41:51.42 やべぇ、このaliasの使い方、
めちゃくちゃ強力じゃないか?
文法の拡張が可能かもしれない
こんな所でネタにするレベルじゃないわ
めちゃくちゃ強力じゃないか?
文法の拡張が可能かもしれない
こんな所でネタにするレベルじゃないわ
819817
2018/03/31(土) 02:06:02.61 黒魔術置いときますね
#!/bin/sh
def() {
alias begin="$1() { echo before; $1_ "\$@"; echo after; }; $1_() { $3=\$1"
alias end="}; unalias begin end"
}
def foo [ i ]
begin
echo foo $i
end
def bar [ j ]
begin
echo bar $j
end
foo 123
bar 456
#!/bin/sh
def() {
alias begin="$1() { echo before; $1_ "\$@"; echo after; }; $1_() { $3=\$1"
alias end="}; unalias begin end"
}
def foo [ i ]
begin
echo foo $i
end
def bar [ j ]
begin
echo bar $j
end
foo 123
bar 456
2018/03/31(土) 02:30:40.57
そもそもaliasってシェルスクリプトの中で使えたっけ。
俺の環境では使えたけども
俺の環境では使えたけども
2018/03/31(土) 02:48:01.26
>>820
bashとかだとデフォルトでは無効
expand_aliasesを使えば有効にできる
ただ>>817の挙動が全てのシェルで同じなのかは調べてない
aliasの挙動をちゃんと把握してはないけど
どうやら行単位で実行前に、単純な文字列置換が行われてる感じだね
だからevalでもできないスクリプトの自己書き換えみたいなことができちゃう
参考(ちゃんと読んではいないw)
http://magicant.txt-nifty.com/main/2017/10/yash-2-285-b4d8.html
bashとかだとデフォルトでは無効
expand_aliasesを使えば有効にできる
ただ>>817の挙動が全てのシェルで同じなのかは調べてない
aliasの挙動をちゃんと把握してはないけど
どうやら行単位で実行前に、単純な文字列置換が行われてる感じだね
だからevalでもできないスクリプトの自己書き換えみたいなことができちゃう
参考(ちゃんと読んではいないw)
http://magicant.txt-nifty.com/main/2017/10/yash-2-285-b4d8.html
2018/03/31(土) 02:57:08.73
AIXの人はseqってどうやって代用してる?
2018/03/31(土) 09:20:43.88
awkでチョチョイでは?
2018/03/31(土) 22:32:30.06
みんな、変わった(?)の使ってるな。
Linux、BSD、Solarisなどのメジャーなもの以外で何がよく使われてるの?
Linux、BSD、Solarisなどのメジャーなもの以外で何がよく使われてるの?
2018/03/31(土) 22:52:09.24
Mac
2018/04/01(日) 01:13:29.58
MacはBSD系ってことでまとめましょうw
2018/04/02(月) 07:41:52.65
$ man basename > man_basenam
でできるファイルを
emacsとテキストエディットで開いたものが次のものです。
https://imgur.com/a/8ggUs?
これはそういう仕様なのでしょうか?文字化けというか不思議な
コードになっています。できれば教えていただけないでしょうか
でできるファイルを
emacsとテキストエディットで開いたものが次のものです。
https://imgur.com/a/8ggUs?
これはそういう仕様なのでしょうか?文字化けというか不思議な
コードになっています。できれば教えていただけないでしょうか
2018/04/02(月) 08:19:02.96
http://surf.ml.seikei.ac.jp/~nakano/JMwww/html/man/man1/man.1.html
バックスペースとアンダースコアがない プレーンテキスト版の man ページを得るには、コマンド
# man foo | col -b > foo.mantxt
を実行すること。
バックスペースとアンダースコアがない プレーンテキスト版の man ページを得るには、コマンド
# man foo | col -b > foo.mantxt
を実行すること。
2018/04/02(月) 08:25:59.92
2018/04/02(月) 10:28:43.52
man manすればいい
TIPSに載ってる
TIPSに載ってる
2018/04/02(月) 14:17:49.92
あと、emacs に限って言うと
M-x man
(ESC x man リターン)
と叩いて、man のエントリー名を入れれば、
きっちり整形した結果を表示してくれるから、
col -b を使う必要はあまりない。
M-x man
(ESC x man リターン)
と叩いて、man のエントリー名を入れれば、
きっちり整形した結果を表示してくれるから、
col -b を使う必要はあまりない。
2018/04/02(月) 18:03:58.27
2018/04/02(月) 18:24:12.37
yesはなんか処理間違えると止まらなくなりそうで怖いんだよな
2018/04/02(月) 21:00:30.14
>>832
POSIX catには-nオプションがない[*1]のでnlコマンドを使う方法を提案する。
$ yes '' | nl -b a -n ln | head -n 10 | sed -e 's/[ \t]*//g' | tr '\n' ' '
*1: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cat.html
POSIX catには-nオプションがない[*1]のでnlコマンドを使う方法を提案する。
$ yes '' | nl -b a -n ln | head -n 10 | sed -e 's/[ \t]*//g' | tr '\n' ' '
*1: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cat.html
2018/04/02(月) 21:07:04.97
$ yes '' | nl -b a | head -n 10 | tr -d ' \t' | tr '\n' ' '
修正。もっと簡単にできるわww
修正。もっと簡単にできるわww
836834
2018/04/02(月) 21:28:17.87 これもしかしたらheadコマンドとnlコマンドの順番入れ替えると速度違う?
んなことないと思ってたけどビミョーに差があるかもしれん。
詳しい人検証してくれ……。
$ time for a in $(seq 10000); do seq 10000 > /dev/null; done
real 0m14.601s
user 0m0.452s
sys 0m3.736s
$ time for a in $(seq 10000); do yes '' | nl -b a | head -n 10000 | tr -d ' \t' | tr '\n' ' ' > /dev/null; done
real 1m2.693s
user 0m5.672s
sys 0m21.032s
$ time for a in $(seq 10000); do yes '' | head -n 10000 | nl -b a | tr -d ' \t' | tr '\n' ' ' > /dev/null; done
real 0m47.944s
user 0m1.472s
sys 0m17.820s
んなことないと思ってたけどビミョーに差があるかもしれん。
詳しい人検証してくれ……。
$ time for a in $(seq 10000); do seq 10000 > /dev/null; done
real 0m14.601s
user 0m0.452s
sys 0m3.736s
$ time for a in $(seq 10000); do yes '' | nl -b a | head -n 10000 | tr -d ' \t' | tr '\n' ' ' > /dev/null; done
real 1m2.693s
user 0m5.672s
sys 0m21.032s
$ time for a in $(seq 10000); do yes '' | head -n 10000 | nl -b a | tr -d ' \t' | tr '\n' ' ' > /dev/null; done
real 0m47.944s
user 0m1.472s
sys 0m17.820s
2018/04/02(月) 21:41:13.89
並行して動くか、出力の完了を待ってから動くかの違いだろ
2018/04/02(月) 23:47:22.15
パイプで繋いでプロセス4つも5つも上げるくらいなら、
素直にawk 1プロセスですませた方が軽くないか?
素直にawk 1プロセスですませた方が軽くないか?
839836
2018/04/02(月) 23:56:24.81840836
2018/04/03(火) 00:14:31.67 ていうかseqの既定の出力を勘違いしてた
$ yes '' | head -n 10 | nl -b a | tr -c -d '\n[:digit:]'
こんなもんかな?
$ time for a in $(seq 10000); do yes '' | head -n 10000 | nl -b a | tr -c -d '\n[:digit:]' > /dev/null ; done
real 0m42.358s
user 0m0.544s
sys 0m14.452s
$ yes '' | head -n 10 | nl -b a | tr -c -d '\n[:digit:]'
こんなもんかな?
$ time for a in $(seq 10000); do yes '' | head -n 10000 | nl -b a | tr -c -d '\n[:digit:]' > /dev/null ; done
real 0m42.358s
user 0m0.544s
sys 0m14.452s
2018/04/03(火) 00:40:30.08
awk 'BEGIN {for(i=10;i<=20;i++) printf "%d\n",i}'
2018/04/03(火) 01:08:09.19
yes '' | sed -n '=;10q'
2018/04/03(火) 14:22:10.27
sedでやるとは
2018/04/03(火) 18:22:16.97
2018/04/03(火) 18:57:15.26
sedって計算完備なんだっけ。
やろうと思えばsed単体でseq作れるよね
やろうと思えばsed単体でseq作れるよね
2018/04/03(火) 19:03:30.37
sedでlispを作った人はいる
2018/04/03(火) 19:33:57.64
どうかしてるぜ
2018/04/03(火) 22:20:55.54
>>842
使うことないだろうけど感動した
使うことないだろうけど感動した
2018/04/03(火) 23:45:32.30
そんなことより野球やろうぜ
2018/04/04(水) 07:05:11.03
2018/04/05(木) 00:02:39.79
家具家電彼女完備の家に住みたい
2018/04/05(木) 02:42:14.79
sinyabin.shの中でradiru.shを実行しています。
sinyabin.shの中の変数をradiru.shに引き継ぎたいんですが、どう書けばいいんでしょうか?
sinyabin.shの中の変数をradiru.shに引き継ぎたいんですが、どう書けばいいんでしょうか?
853852
2018/04/05(木) 03:31:27.11 radiru.shには、
pushbulettに録音開始の通知
ffmpegを使ってaacのダウンロード
l-smashを使ってaacをm4aに詰め替え
aacの削除
dropboxへm4aのアップロード
ローカルのm4aの削除
pushbulettに録音終了の通知をするコマンドを記入
radiru.shは
$ sinyabin.sh チャンネル 録音時間 ファイル名
で録音出来るようになっているので、
録画したい番組毎にsinyabin.sh等を作りその中に、
$ sinyabin.sh チャンネル 録音時間 ファイル名
を記入しています。
radiru.shの中のl-smashでaacをm4aにする際に番組名やアーティスト名などのタグ付けも一緒にやりたいので、sinyabin.sh側であらかじめl-smashで指定するタグのオプションを記入出来ればと思いました。
pushbulettに録音開始の通知
ffmpegを使ってaacのダウンロード
l-smashを使ってaacをm4aに詰め替え
aacの削除
dropboxへm4aのアップロード
ローカルのm4aの削除
pushbulettに録音終了の通知をするコマンドを記入
radiru.shは
$ sinyabin.sh チャンネル 録音時間 ファイル名
で録音出来るようになっているので、
録画したい番組毎にsinyabin.sh等を作りその中に、
$ sinyabin.sh チャンネル 録音時間 ファイル名
を記入しています。
radiru.shの中のl-smashでaacをm4aにする際に番組名やアーティスト名などのタグ付けも一緒にやりたいので、sinyabin.sh側であらかじめl-smashで指定するタグのオプションを記入出来ればと思いました。
854852
2018/04/05(木) 03:41:17.05 radiru.shはaacのダウンロードだけにして、
Pushbulettへの通知、l-smash、Dropboxなどはsinyabin.shの方に書いたほうがいいんでしょうか?
そうすれば、ちょっと録音したいと思ったときいちいち番組毎のスクリプトをつくりその中にIDタグなど細かく書かなくてもすむから楽かなと。
でもそれだと、番組毎のスクリプトに「Pushbulettへの通知、l-smash、Dropbox」といったコマンドを書かないといけないので無駄かなあとも思いました。
どういうフローがいいと思いますか?
Pushbulettへの通知、l-smash、Dropboxなどはsinyabin.shの方に書いたほうがいいんでしょうか?
そうすれば、ちょっと録音したいと思ったときいちいち番組毎のスクリプトをつくりその中にIDタグなど細かく書かなくてもすむから楽かなと。
でもそれだと、番組毎のスクリプトに「Pushbulettへの通知、l-smash、Dropbox」といったコマンドを書かないといけないので無駄かなあとも思いました。
どういうフローがいいと思いますか?
2018/04/05(木) 10:10:37.31
export すりゃいいんじゃない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日中対立、打開策見えず 高市氏答弁1カ月、影響拡大 ★3 [蚤の市★]
- 【テレビ】家入レオ、勘当同然での上京告白「敷居はもう跨がないでください」 14年の確執語る [湛然★]
- 小林よしのり 日中関係、来年「ますます日本は不利に… 加害者の分際で被害者ぶって、中国が横暴だと毅然と振る舞っても滑稽なだけ」★2 [冬月記者★]
- 働いて働いて働いても生活は…円安に歯止めが掛からず生活は苦しくなるばかり…サナエノミクスの限界で「高市不況」がやってくる ★7 [ぐれ★]
- 【FC】『スペランカー』の発売40周年! [湛然★]
- 元グラドル維新議員 夫に「サンドイッチのパン」を依頼→食パン6枚切り買われ怒り…“どちらが悪い?”SNSで議論 ★3 [muffin★]
- 【悲報】俺たちの大谷兄、『おぢアタック成功民(39歳で28歳の女性と結婚)』だったwwwwwwwwwwww [257926174]
- 【高市リスク】レアアース停滞 [115996789]
- 年末に妹がロリコン彼氏連れて挨拶に来るらしいんだが別れさせたい
- 第二次日中戦争、お互い何を守るための戦いなのかわからないまま開戦へ… [469534301]
- 🥺あさだよお
- ガリガリ女とチー牛のカップル、お似合いすぎるwwwwwwwwwwwwwwww [977790669]
