シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
前スレ: シェルスクリプト総合 その34
https://mevius.5ch.net/test/read.cgi/tech/1597990675/
シェルスクリプト総合 その35
■ このスレッドは過去ログ倉庫に格納されています
2020/11/24(火) 21:37:20.06ID:mbTiTj6s
296デフォルトの名無しさん
2020/12/09(水) 13:18:05.27ID:ZEWfqGU4 むしろなんでシェルショッカーの記事を見つけだせたのかわからん
こっちの方が検索しても見つからないぞ
(あ、シェルショッカー本人かw)
こっちの方が検索しても見つからないぞ
(あ、シェルショッカー本人かw)
297デフォルトの名無しさん
2020/12/09(水) 13:19:51.75ID:rIU0lDlE 検索したらPOSIXはオワコンって書いてあった。
検索すればすぐ出てくる。
出てこないというならその結果を貼れ。
検索すればすぐ出てくる。
出てこないというならその結果を貼れ。
298デフォルトの名無しさん
2020/12/09(水) 13:20:27.65ID:ZEWfqGU4 >>295
検索して見つからなかったというのなら
その見つからなかった結果を貼れと言ってます
あるなら貼るだと、なければ貼れないけど、
あってもなくても貼れなら
検索結果が貼れないなんてことはないのです
検索して見つからなかったというのなら
その見つからなかった結果を貼れと言ってます
あるなら貼るだと、なければ貼れないけど、
あってもなくても貼れなら
検索結果が貼れないなんてことはないのです
299デフォルトの名無しさん
2020/12/09(水) 13:21:20.38ID:ZEWfqGU4300デフォルトの名無しさん
2020/12/09(水) 13:22:45.72ID:jODQKuwy しょうゆは発ガン物質。
検索すればすぐ出てくる。
検索して見つからなかったというのなら
その見つからなかった結果を貼れ
検索すればすぐ出てくる。
検索して見つからなかったというのなら
その見つからなかった結果を貼れ
301デフォルトの名無しさん
2020/12/09(水) 13:24:09.58ID:ZEWfqGU4 ちなみにこちらは「見つかっても見つからなくてもいいから」
「検索結果」を貼れと言ってます。
検索したという事実を見たいだけです。
無関係な例えは潰しておきますw
「検索結果」を貼れと言ってます。
検索したという事実を見たいだけです。
無関係な例えは潰しておきますw
302デフォルトの名無しさん
2020/12/09(水) 13:27:11.24ID:rIU0lDlE 見つかった結果を貼れ
見つからないから貼れないで詭弁でごねてるだけ
見つからないから貼れないで詭弁でごねてるだけ
303デフォルトの名無しさん
2020/12/09(水) 13:28:41.82ID:ZEWfqGU4 >>302
代わりにお前でもいいよw
見つからなくていい。ググって出てきたものを貼るだけ
再掲
> 「POSIX準拠のシェルスクリプトでのUNIXタイムの変換」でGoogleで検索して
> 上位5つの検索結果=「現物」を持ってきてください
> 人によって順位は違うらしいからね
>
> なぜ現物を持ってこれないのか?
> 検索で簡単に見つかるという現実を受け入れられないからなのかな?
代わりにお前でもいいよw
見つからなくていい。ググって出てきたものを貼るだけ
再掲
> 「POSIX準拠のシェルスクリプトでのUNIXタイムの変換」でGoogleで検索して
> 上位5つの検索結果=「現物」を持ってきてください
> 人によって順位は違うらしいからね
>
> なぜ現物を持ってこれないのか?
> 検索で簡単に見つかるという現実を受け入れられないからなのかな?
304デフォルトの名無しさん
2020/12/09(水) 13:31:32.04ID:jODQKuwy 見つかったなら貼ればいいだけ
見つからない、貼れない、
だからすり替えでごまかしてるだけw
誰にも効いてないがw
見つからない、貼れない、
だからすり替えでごまかしてるだけw
誰にも効いてないがw
305デフォルトの名無しさん
2020/12/09(水) 13:38:52.41ID:ZEWfqGU4 検索キーワードがあれば十分でしょ?w
そこで見つかると言ってる
そこで見つかると言ってる
306デフォルトの名無しさん
2020/12/09(水) 13:43:40.09ID:jODQKuwy 見つかった証拠出せ。
貼るだけ。
これができないのはなぜでしょう?
答え:嘘んこだからw
貼るだけ。
これができないのはなぜでしょう?
答え:嘘んこだからw
307デフォルトの名無しさん
2020/12/09(水) 14:27:06.23ID:ZEWfqGU4 嘘か本当か自分で調べればわかること
本当に調べたのであれば検索結果を貼ることが出来るはず
見つかった証拠を貼れと言ってるのではない
検索した結果を貼れと言ってるだけで内容についてはどうでもいい
これができないのはなぜでしょう?
答え:検索すらできない人だからw
本当に調べたのであれば検索結果を貼ることが出来るはず
見つかった証拠を貼れと言ってるのではない
検索した結果を貼れと言ってるだけで内容についてはどうでもいい
これができないのはなぜでしょう?
答え:検索すらできない人だからw
308デフォルトの名無しさん
2020/12/09(水) 15:51:00.03ID:An1T/9HU 【置換前文字列1】を【置換後文字列1】に、【置換前文字列2】を【置換後文字列2】に、、、
ってときに
sedを一行で書くのではなく、何行かに分けてかくのが普通ですか?
(単に複業数を一行に見せるやり方という意味ではなく、置換前後の対応的な書き方があるのかなと)
ってときに
sedを一行で書くのではなく、何行かに分けてかくのが普通ですか?
(単に複業数を一行に見せるやり方という意味ではなく、置換前後の対応的な書き方があるのかなと)
309デフォルトの名無しさん
2020/12/09(水) 16:14:27.63ID:vZ4bQifg findコマンドについて、
対象となるファイルが一つも見付からなかった場合でも(grepとかと違って)
終了ステータスは0のままであることって保証されてるっけ?
ここ↓の終了ステータスの節をみても微妙に分からない。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html
対象となるファイルが一つも見付からなかった場合でも(grepとかと違って)
終了ステータスは0のままであることって保証されてるっけ?
ここ↓の終了ステータスの節をみても微妙に分からない。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html
310デフォルトの名無しさん
2020/12/09(水) 16:28:08.45ID:vZ4bQifg >>308
sed -e '<置換命令>;<置換命令>;<置換命令>'
ってやるのと
sed -e '<置換命令>' -e '<置換命令>' -e '<置換命令>'
ってやるのとの違いってこと?
$ <<. sed -e 's/a/b/g' -e 's/b/c/g'
a-b-c
.
→c-c-c
$ <<. sed -e 's/a/b/g;s/b/c/g'
a-b-c
.
→c-c-c
↑こういう「普通の」操作なら別にどっちでも結果が変わらないから
自分が好きな方で書けばいいんじゃないかな。
sed -e '<置換命令>;<置換命令>;<置換命令>'
ってやるのと
sed -e '<置換命令>' -e '<置換命令>' -e '<置換命令>'
ってやるのとの違いってこと?
$ <<. sed -e 's/a/b/g' -e 's/b/c/g'
a-b-c
.
→c-c-c
$ <<. sed -e 's/a/b/g;s/b/c/g'
a-b-c
.
→c-c-c
↑こういう「普通の」操作なら別にどっちでも結果が変わらないから
自分が好きな方で書けばいいんじゃないかな。
311デフォルトの名無しさん
2020/12/09(水) 16:31:23.67ID:ZEWfqGU4 >>308
見やすいように書けばいいよ
長ければ複数行じゃないと見づらいだろ?
sedって引数で正規表現置換命令を単体で書くような感じだけど
実際は複数の命令を書くところなんだよね
こういう引数で置換!じゃなくて
行を読み取ってその行に対して、あれをやってこれをやってそれをやって・・・と複数の命令を書く
それがわかってない人が意外と多い気がする
見やすいように書けばいいよ
長ければ複数行じゃないと見づらいだろ?
sedって引数で正規表現置換命令を単体で書くような感じだけど
実際は複数の命令を書くところなんだよね
こういう引数で置換!じゃなくて
行を読み取ってその行に対して、あれをやってこれをやってそれをやって・・・と複数の命令を書く
それがわかってない人が意外と多い気がする
312デフォルトの名無しさん
2020/12/09(水) 17:17:45.74ID:h/snEzA+ っていうか前スレがまだ埋まってないやん
検索結果がなんだのくだらない話で埋めてくれてもええんやで
検索結果がなんだのくだらない話で埋めてくれてもええんやで
313デフォルトの名無しさん
2020/12/09(水) 21:46:27.20ID:vZ4bQifg 最近findの-exec被演算子による実行を
for _var_ in *; do ...; done
を置き換える形で好んで使っている。
まあfor文の何が悪いって訳じゃないけど
強いて挙げるならfindを使う方法は余計な変数を用意しなくていい。
for文にしかできないことっていうのもそうそうないし。
for _var_ in *; do ...; done
を置き換える形で好んで使っている。
まあfor文の何が悪いって訳じゃないけど
強いて挙げるならfindを使う方法は余計な変数を用意しなくていい。
for文にしかできないことっていうのもそうそうないし。
314デフォルトの名無しさん
2020/12/09(水) 22:15:47.43ID:sjKwJCQI 何故xargsじゃなくて-exec...
315デフォルトの名無しさん
2020/12/09(水) 22:17:29.01ID:0QlTtfMo 適材適所
forはファイル数が多数になった場合には引数が多すぎでエラーになる可能性があるから
ファイルを繰り返し処理するのはおすすめできない
ただし-execはシェル関数が呼べなかったりシェルスクリプトの処理との連携が
できないというデメリットが有る
外部コマンドを呼び出すだけなら-execでいいが
そうとは限らない場合はfind + while + read ループの方がいいだろう
ファイルの数が少ない場合は外部コマンドを呼び出さない分
for(というか * )の方が速い
それで検索してみたか?
forはファイル数が多数になった場合には引数が多すぎでエラーになる可能性があるから
ファイルを繰り返し処理するのはおすすめできない
ただし-execはシェル関数が呼べなかったりシェルスクリプトの処理との連携が
できないというデメリットが有る
外部コマンドを呼び出すだけなら-execでいいが
そうとは限らない場合はfind + while + read ループの方がいいだろう
ファイルの数が少ない場合は外部コマンドを呼び出さない分
for(というか * )の方が速い
それで検索してみたか?
316デフォルトの名無しさん
2020/12/09(水) 22:27:18.92ID:0QlTtfMo forは余計な変数がいるけど
whileを使えば余計な変数は不要
どうするかって?
set -- *
while [ $# -gt 0 ]; do ...; shift; done
余計な変数がいるからforを使わないというのは正しいが
余計な変数がいるからfindを使うは正しくない
whileを使えば余計な変数は不要
どうするかって?
set -- *
while [ $# -gt 0 ]; do ...; shift; done
余計な変数がいるからforを使わないというのは正しいが
余計な変数がいるからfindを使うは正しくない
317デフォルトの名無しさん
2020/12/09(水) 22:41:19.62ID:vZ4bQifg >>315
> ファイル数が多数になった場合
これ\+じゃなくて\;を使えば別にファイル数が多数になっても
適宜処理できるんじゃない?
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html
↑これの-execの
If the primary expression is punctuated by a <semicolon>...らへん。
> ファイル数が多数になった場合
これ\+じゃなくて\;を使えば別にファイル数が多数になっても
適宜処理できるんじゃない?
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/find.html
↑これの-execの
If the primary expression is punctuated by a <semicolon>...らへん。
318デフォルトの名無しさん
2020/12/09(水) 22:41:47.84ID:vZ4bQifg >>317
すまん,for文の話だった。
すまん,for文の話だった。
319デフォルトの名無しさん
2020/12/10(木) 13:32:02.46ID:PUDbf/ME >>309
これについて
手元のGNU findで試してみたけど 該当するfile/dirが1件も見付からない場合でも
エラーにならないというかexit statusは0だった。
もっとも これが正しい挙動なのかは不明。
これについて
手元のGNU findで試してみたけど 該当するfile/dirが1件も見付からない場合でも
エラーにならないというかexit statusは0だった。
もっとも これが正しい挙動なのかは不明。
320デフォルトの名無しさん
2020/12/10(木) 14:01:03.28ID:A3fjGgOY POSIXに仕様が書いてあるのに
あの程度も読めないやつがいるんだな
あの程度も読めないやつがいるんだな
321デフォルトの名無しさん
2020/12/10(木) 15:44:18.07ID:PUDbf/ME322デフォルトの名無しさん
2020/12/10(木) 18:05:30.50ID:A3fjGgOY これ以外に何の解釈が有るんだ?
EXIT STATUS
The following exit values shall be returned:
0 All path operands were traversed successfully.
>0 An error occurred.
終了ステータス 次の終了値が返されます。
0 すべてのパスオペランドが正常にトラバースされました。
> 0 エラーが発生しました。
EXIT STATUS
The following exit values shall be returned:
0 All path operands were traversed successfully.
>0 An error occurred.
終了ステータス 次の終了値が返されます。
0 すべてのパスオペランドが正常にトラバースされました。
> 0 エラーが発生しました。
323デフォルトの名無しさん
2020/12/11(金) 00:40:48.48ID:wU/o6Go9324デフォルトの名無しさん
2020/12/11(金) 01:30:47.40ID:s+ujdTab >>323
悪い仕様の書き方の見本みたいなところあるけど
ファイルが見つかったかどうかはEXIT STATUSには無関係
ファイルが見つかっても見つからなくても
なんらかのエラーで走査できないパスが1つでもあればEXIT STATUSは1以上
全てのパスが走査きればファイルが見つかっても見つからなくてもEXIT STATUSは0
悪い仕様の書き方の見本みたいなところあるけど
ファイルが見つかったかどうかはEXIT STATUSには無関係
ファイルが見つかっても見つからなくても
なんらかのエラーで走査できないパスが1つでもあればEXIT STATUSは1以上
全てのパスが走査きればファイルが見つかっても見つからなくてもEXIT STATUSは0
325デフォルトの名無しさん
2020/12/11(金) 02:02:17.08ID:76SqqmH2 一般的にはプログラムが正常終了すれば0
異常終了すれば1
ファイルが一つも見つからなくても
プログラムが正常に終了したので0になる
異常終了すれば1
ファイルが一つも見つからなくても
プログラムが正常に終了したので0になる
326デフォルトの名無しさん
2020/12/11(金) 02:22:36.63ID:ExAO4AKO327デフォルトの名無しさん
2020/12/11(金) 10:03:55.72ID:ExAO4AKO あげ
328デフォルトの名無しさん
2020/12/11(金) 10:56:58.75ID:wU/o6Go9 >>324
ありがとう!
ありがとう!
329デフォルトの名無しさん
2020/12/11(金) 10:57:23.23ID:wU/o6Go9 さげ
330デフォルトの名無しさん
2020/12/11(金) 10:57:25.22ID:vQm1aiEb スレはまだ33も34も使えてたな。w
331デフォルトの名無しさん
2020/12/11(金) 11:16:29.73ID:wU/o6Go9 >>316
setすげー
setすげー
332デフォルトの名無しさん
2020/12/11(金) 12:51:27.35ID:vQm1aiEb sedについて質問。
入力に¥x80以上の文字が含まれていた場合、正規表現「.」はマッチしないんだっけ?
試しに「[¥x00-¥xff]」とするとエラーになるし。。。
任意のバイナリは扱えない?
入力に¥x80以上の文字が含まれていた場合、正規表現「.」はマッチしないんだっけ?
試しに「[¥x00-¥xff]」とするとエラーになるし。。。
任意のバイナリは扱えない?
333デフォルトの名無しさん
2020/12/11(金) 13:23:03.65ID:hnvNpoRh 前スレ埋めマンおつかれさん
334デフォルトの名無しさん
2020/12/11(金) 14:13:42.30ID:wU/o6Go9 >>332
そもそもsedって正規表現のところで\の後に数字を置いて
なにか文字を表わす,みたいなことできなかったと思う。
唯一,s/<ここ>//の←<ここ>の部分で\nが使えるだけ。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
そもそもsedって正規表現のところで\の後に数字を置いて
なにか文字を表わす,みたいなことできなかったと思う。
唯一,s/<ここ>//の←<ここ>の部分で\nが使えるだけ。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html
335デフォルトの名無しさん
2020/12/11(金) 14:42:33.40ID:vQm1aiEb >>334
ほかにも'\\', '\a', '\b', '\f', '\r', '\t', '\v'は使えるようだが、それだけか。
うぬぬ。。。
では、次のようなバイナリがあったとき、数値部分を抽出するにはどうすればいいかな?
<任意のバイナリ><数値テキスト>
ほかにも'\\', '\a', '\b', '\f', '\r', '\t', '\v'は使えるようだが、それだけか。
うぬぬ。。。
では、次のようなバイナリがあったとき、数値部分を抽出するにはどうすればいいかな?
<任意のバイナリ><数値テキスト>
336デフォルトの名無しさん
2020/12/11(金) 16:02:17.03ID:FiGFWWeM grep -aとか?
337デフォルトの名無しさん
2020/12/11(金) 16:18:40.22ID:s+ujdTab GNU grepで-obUaPで使ってる
https://stackoverflow.com/a/17168847
https://stackoverflow.com/a/17168847
338デフォルトの名無しさん
2020/12/11(金) 16:52:32.46ID:vQm1aiEb >>336,337
ありがとう。
一瞬だけgrepでなんとかならんかな?と思ったけど、いやムリやろと自己完結してた。。。
ちなみに試した感じ、grep -o(--only-matching)で充分そうだけど、-a(--text)は何のため?
ありがとう。
一瞬だけgrepでなんとかならんかな?と思ったけど、いやムリやろと自己完結してた。。。
ちなみに試した感じ、grep -o(--only-matching)で充分そうだけど、-a(--text)は何のため?
339デフォルトの名無しさん
2020/12/11(金) 17:36:15.90ID:IIqX/1kZ >>332
\x00以外ならできる
$ cat a.txt
漢字
$ hexdump -C a.txt
00000000 e6 bc a2 e5 ad 97 0a |.......|
$ A=$(printf '\xe6')
$ printf "$A" | hexdump -C
00000000 e6 |.|
$ sed "s/$A/ /" a.txt | hexdump -C
00000000 20 bc a2 e5 ad 97 0a | ......|
\x00以外ならできる
$ cat a.txt
漢字
$ hexdump -C a.txt
00000000 e6 bc a2 e5 ad 97 0a |.......|
$ A=$(printf '\xe6')
$ printf "$A" | hexdump -C
00000000 e6 |.|
$ sed "s/$A/ /" a.txt | hexdump -C
00000000 20 bc a2 e5 ad 97 0a | ......|
340デフォルトの名無しさん
2020/12/11(金) 17:40:10.43ID:IIqX/1kZ $ LANG=C sed "s/./ /" a.txt | hexdump -C
00000000 20 bc a2 e5 ad 97 0a | ......|
00000000 20 bc a2 e5 ad 97 0a | ......|
341デフォルトの名無しさん
2020/12/11(金) 18:05:15.53ID:FiGFWWeM342デフォルトの名無しさん
2020/12/11(金) 18:27:02.69ID:vQm1aiEb >>339
あー、なるほど。
エスケープとかじゃなくて、直にその文字コードの文字を入力したらいいのか。
ってムリ。w
入力ができるできないで言えばできるけど、後から文字が読めなくなるし。
とにかく、sedだってバイナリを扱えないことはない、ということはわかりました。
ありがとう。
あー、なるほど。
エスケープとかじゃなくて、直にその文字コードの文字を入力したらいいのか。
ってムリ。w
入力ができるできないで言えばできるけど、後から文字が読めなくなるし。
とにかく、sedだってバイナリを扱えないことはない、ということはわかりました。
ありがとう。
343デフォルトの名無しさん
2020/12/11(金) 18:29:19.33ID:vQm1aiEb344デフォルトの名無しさん
2020/12/11(金) 18:36:44.59ID:IIqX/1kZ >>342
> 入力ができるできないで言えばできるけど、後から文字が読めなくなるし。
$ A=$(printf '\xe6')
読めるだろ?
後からって読むならスクリプトファイルにしてるはずだし
なにか問題が?
> 入力ができるできないで言えばできるけど、後から文字が読めなくなるし。
$ A=$(printf '\xe6')
読めるだろ?
後からって読むならスクリプトファイルにしてるはずだし
なにか問題が?
345デフォルトの名無しさん
2020/12/11(金) 19:02:21.38ID:vQm1aiEb346デフォルトの名無しさん
2020/12/11(金) 19:13:58.45ID:IIqX/1kZ x80=$(printf '\x80')
xFF=$(printf '\xff')
sed --expression "/[$x80-$xFF]/"
でいいだろ
なんでこう頭が固いのか
xFF=$(printf '\xff')
sed --expression "/[$x80-$xFF]/"
でいいだろ
なんでこう頭が固いのか
347デフォルトの名無しさん
2020/12/11(金) 20:19:54.18ID:i7+Pb2PU シェルスクリプトが大好きなんだ
348デフォルトの名無しさん
2020/12/11(金) 21:29:20.20ID:vQm1aiEb349デフォルトの名無しさん
2020/12/11(金) 21:42:27.33ID:IIqX/1kZ350デフォルトの名無しさん
2020/12/11(金) 21:57:40.12ID:uTa/dhkC ポジ夫はそろそろコテ付けろ
351デフォルトの名無しさん
2020/12/11(金) 22:41:13.04ID:vQm1aiEb >>349
オレのもとのコードはたんに読みにくくてヤバいが、そっちのコードは、一度しか使わない変数で、さらにその名前と値がダブってるところがもっとヤバい。
いきあたりばったりなどではない、確固たるオレの感覚。
わからんのなら、見解の相違ということで。
おしまい。
オレのもとのコードはたんに読みにくくてヤバいが、そっちのコードは、一度しか使わない変数で、さらにその名前と値がダブってるところがもっとヤバい。
いきあたりばったりなどではない、確固たるオレの感覚。
わからんのなら、見解の相違ということで。
おしまい。
352デフォルトの名無しさん
2020/12/11(金) 23:43:56.95ID:IIqX/1kZ ダブルのがいやならこうすれば?少しは頭を使おう
for i in 80 ff; do eval "x$i=$(printf "\x$i")"; done
for i in 80 ff; do eval "x$i=$(printf "\x$i")"; done
353デフォルトの名無しさん
2020/12/11(金) 23:46:03.88ID:wU/o6Go9 sed --expression "/[$(printf '\x80')-$(printf '\xff')]/"
これが「ヤバい」理由を教えてくれたら改善≠ナきるかも知れない。
(正直私にはとくに「ヤバい」コードには見えないのだが……)
これが「ヤバい」理由を教えてくれたら改善≠ナきるかも知れない。
(正直私にはとくに「ヤバい」コードには見えないのだが……)
354デフォルトの名無しさん
2020/12/11(金) 23:48:19.15ID:wU/o6Go9 ていうか読み直したら「感覚」で批判してるのな……
じゃあもういいや。
なんか理論的な欠点があるのかと思って,
私にはそうは見えなかったから勉強の為に訊こうとしたけど
そういう感じではなかったみたい。
じゃあもういいや。
なんか理論的な欠点があるのかと思って,
私にはそうは見えなかったから勉強の為に訊こうとしたけど
そういう感じではなかったみたい。
355デフォルトの名無しさん
2020/12/11(金) 23:52:49.09ID:IIqX/1kZ 他にもこうするとかな。マジ頭が固すぎ
LANG=C sed --expression "s/$(printf '[\x80-\xff]')//"
LANG=C sed --expression "$(printf 's/[\x80-\xff]//')"
LANG=C sed --expression "s/$(printf '[\x80-\xff]')//"
LANG=C sed --expression "$(printf 's/[\x80-\xff]//')"
356デフォルトの名無しさん
2020/12/11(金) 23:57:16.95ID:IIqX/1kZ 「確固たるオレの感覚」が技術力不足によるものだから
自分が未熟であることに気が付かないとどうしようもないだろうな
staticおじさんと一緒
自分が未熟であることに気が付かないとどうしようもないだろうな
staticおじさんと一緒
357デフォルトの名無しさん
2020/12/12(土) 00:10:55.93ID:iu3yHDzN (まだ)POSIX準拠じゃないけど、誰かに言われるのも嫌なので一応w
LANG=C sed --expression $'s/[\x80-\xff])//'
LANG=C sed --expression $'s/[\x80-\xff])//'
358デフォルトの名無しさん
2020/12/12(土) 01:09:44.28ID:4UtPcEnB359デフォルトの名無しさん
2020/12/12(土) 08:26:04.77ID:MG/EKh+i あるコマンドがシバン使って実行されてたかどうかを知る方法ってある?
例えばscript.shってのがあったとして
$ script.sh ./file で起動されたのか、それとも
[file]
#!/usr/bin/env script.sh
$ ./file で起動されたのか区別したい
例えばscript.shってのがあったとして
$ script.sh ./file で起動されたのか、それとも
[file]
#!/usr/bin/env script.sh
$ ./file で起動されたのか区別したい
360デフォルトの名無しさん
2020/12/12(土) 10:35:15.06ID:yfEaL+fJ >>359
どこで判定するの?
script.shになにかを記述して判定するってことでいいか?
fileじゃなくてscript.shで判定するのは厳しいと思うよ。
というのもシバンは,たとえばLinuxでは
#!xxxx yyyy zzzz
というのを
$ xxxx "yyyy zzzz"
というようなコマンドラインに変換≠オて実行する訳だから,
xxxxにとってはシバンなのかコマンドラインなのか
判断付かないと思う(間違ってたらすまん)
どこで判定するの?
script.shになにかを記述して判定するってことでいいか?
fileじゃなくてscript.shで判定するのは厳しいと思うよ。
というのもシバンは,たとえばLinuxでは
#!xxxx yyyy zzzz
というのを
$ xxxx "yyyy zzzz"
というようなコマンドラインに変換≠オて実行する訳だから,
xxxxにとってはシバンなのかコマンドラインなのか
判断付かないと思う(間違ってたらすまん)
361デフォルトの名無しさん
2020/12/12(土) 13:55:22.07ID:Fly4aHPX ちょっと話外れるけど
みんな「シバン」派?
俺の周囲はみんな「シェバン」て言ってる
どっちが主流なんだろ
「エヌテーテー」と「エヌティーティー」みたいな
世代間の差がある様な気がしてる
まぁどっちも意味通じるしどちらも間違ってはいないんだろうけど
微妙に気になる
みんな「シバン」派?
俺の周囲はみんな「シェバン」て言ってる
どっちが主流なんだろ
「エヌテーテー」と「エヌティーティー」みたいな
世代間の差がある様な気がしてる
まぁどっちも意味通じるしどちらも間違ってはいないんだろうけど
微妙に気になる
362デフォルトの名無しさん
2020/12/12(土) 14:01:32.15ID:Fly4aHPX ちなみに「エヌテーテー」と「エヌティーティー」の差は
昔は他社とは電話でコミュニケーション取ってたから
「ティー」だと「イー」と間違われる事が多くて
意図的に「T」を「テー」と発音する様になったんだと先輩に聞いた
だからインターネット以前から働いてる人に多いらしい
昔は他社とは電話でコミュニケーション取ってたから
「ティー」だと「イー」と間違われる事が多くて
意図的に「T」を「テー」と発音する様になったんだと先輩に聞いた
だからインターネット以前から働いてる人に多いらしい
363デフォルトの名無しさん
2020/12/12(土) 14:12:09.74ID:cw6OjyZf364デフォルトの名無しさん
2020/12/12(土) 14:17:40.89ID:Fly4aHPX365デフォルトの名無しさん
2020/12/12(土) 14:54:29.86ID:yfEaL+fJ ドイツ語でTがテー読みだからじゃないの?
366デフォルトの名無しさん
2020/12/12(土) 15:04:57.86ID:zzt2f7BI367デフォルトの名無しさん
2020/12/12(土) 15:25:46.24ID:cvY7SZ8V 一番笑ったのは
tea party を
テー・パーチー
と呼んだこと
tea party を
テー・パーチー
と呼んだこと
368デフォルトの名無しさん
2020/12/12(土) 15:36:24.16ID:4UtPcEnB369デフォルトの名無しさん
2020/12/12(土) 16:34:12.41ID:zzt2f7BI >>368
じゃ一番有力なsharp-bangが語源と考えると「シャバン」
次に有力なhash-bangを日本語読みで考えると「シュバン」だね
語源がどうあれ語呂合わせで既存の単語に当てたんだからその単語の発音を使うのが普通じゃね?
それともshebangの発音を日本語にすると「シェバン」と書く派?
https://www.merriam-webster.com/dictionary/shebang
じゃ一番有力なsharp-bangが語源と考えると「シャバン」
次に有力なhash-bangを日本語読みで考えると「シュバン」だね
語源がどうあれ語呂合わせで既存の単語に当てたんだからその単語の発音を使うのが普通じゃね?
それともshebangの発音を日本語にすると「シェバン」と書く派?
https://www.merriam-webster.com/dictionary/shebang
370デフォルトの名無しさん
2020/12/12(土) 16:41:35.67ID:TQfw61DG えっちでーでーって言いますわよ!
371デフォルトの名無しさん
2020/12/12(土) 16:48:47.64ID:F+pfNArH キヤノン「…」
キユーピー「…」
シヤチハタ「…」
キユーピー「…」
シヤチハタ「…」
372デフォルトの名無しさん
2020/12/12(土) 17:38:18.46ID:yfEaL+fJ373デフォルトの名無しさん
2020/12/12(土) 18:05:16.18ID:E+dxDDH/ 若さって何だ!?
374デフォルトの名無しさん
2020/12/12(土) 18:14:44.89ID:/ZVwqEDj エリチン
375デフォルトの名無しさん
2020/12/12(土) 19:06:47.37ID:cvY7SZ8V ビックカメラの出番か
376デフォルトの名無しさん
2020/12/12(土) 19:20:54.12ID:4UtPcEnB >>373
うっちゅうーけいーじ!ギャ、バーン!!
うっちゅうーけいーじ!ギャ、バーン!!
377デフォルトの名無しさん
2020/12/12(土) 19:56:11.05ID:Fly4aHPX378デフォルトの名無しさん
2020/12/12(土) 20:30:05.90ID:Fly4aHPX >>370
そういえば俺も「デービー」って言うわ
そういえば俺も「デービー」って言うわ
379デフォルトの名無しさん
2020/12/12(土) 20:59:52.06ID:cSSCZNHN セーガー
380デフォルトの名無しさん
2020/12/12(土) 22:07:59.63ID:o8F1hrVe りぽびたんでー
八村塁選手ですらそう言ってるし間違いない
八村塁選手ですらそう言ってるし間違いない
381デフォルトの名無しさん
2020/12/12(土) 22:37:56.72ID:/ZVwqEDj えぬてーてーでーたー
けーでーでーあい
けーでーでーあい
382デフォルトの名無しさん
2020/12/13(日) 11:09:17.16ID:RA5rFVG6 fish
フォルダにいくつかの連番名サブフォルダがあり、その中に連番テキストが入っています。
サブフォルダ00: 000.txt 001.txt
サブフォルダ01: 000.txt
ここにあるテキストをサブフォルダ名とテキスト名を明記してまとめたテキストを作りたいです。
all.txt
00-000.txt
りんご
00-001.txt
ごりら
01-000.txt
らっぱ
一応書いてみたのですがあまりうまくいきませんでした
for x in (seq -w 10)
for y in (seq -w 100) ;printf "%s $x-$y.txt";cat "$x/$y.txt" ; end
end > all.txt
連番が001からではなく000から始めたいのと
no such file or directory が出たときにそのループを終わらせたいです。
よろしくお願いします。
フォルダにいくつかの連番名サブフォルダがあり、その中に連番テキストが入っています。
サブフォルダ00: 000.txt 001.txt
サブフォルダ01: 000.txt
ここにあるテキストをサブフォルダ名とテキスト名を明記してまとめたテキストを作りたいです。
all.txt
00-000.txt
りんご
00-001.txt
ごりら
01-000.txt
らっぱ
一応書いてみたのですがあまりうまくいきませんでした
for x in (seq -w 10)
for y in (seq -w 100) ;printf "%s $x-$y.txt";cat "$x/$y.txt" ; end
end > all.txt
連番が001からではなく000から始めたいのと
no such file or directory が出たときにそのループを終わらせたいです。
よろしくお願いします。
383デフォルトの名無しさん
2020/12/13(日) 13:39:35.23ID:wMleJLXj どっからりんごりらっぱがでてきたんだよ?
384デフォルトの名無しさん
2020/12/13(日) 14:48:45.37ID:FEa/qC9x >>382
find . -type f \( -exec sh -c 'echo "$1" | sed -e "s/\.\/sub\([[:digit:]]\{1,\}\)\/\(.*\)/\1-\2/"; cat "$1"' sh \{\} \; \) > all.txt
find . -type f \( -exec sh -c 'echo "$1" | sed -e "s/\.\/sub\([[:digit:]]\{1,\}\)\/\(.*\)/\1-\2/"; cat "$1"' sh \{\} \; \) > all.txt
385デフォルトの名無しさん
2020/12/13(日) 14:50:01.64ID:FEa/qC9x >>384
前提条件
/tmp/382-test$ tree
.
├── sub00
│ ├── 000.txt # → りんご
│ └── 001.txt # → ごりら
└── sub01
└── 000.txt # → らっぱ
前提条件
/tmp/382-test$ tree
.
├── sub00
│ ├── 000.txt # → りんご
│ └── 001.txt # → ごりら
└── sub01
└── 000.txt # → らっぱ
386382
2020/12/13(日) 18:03:10.51ID:RA5rFVG6 >>383
それぞれのテキストファイルの中身ってことです。すいません。
>>384
ありがとうございます。
そのfish文があまり理解できないのでよかったら教えてください。
特に正規表現部分が複雑でうまく想像できません。
サブフォルダ内には.txtではないファイルもありますが、それはall.txtに入れたくありません。
>>385
/tmp/382-test$がよくわかりません。
また
├── sub00
│ ├── 000.txt # → りんご
│ └── 001.txt # → ごりら
├── sub01
│ └──000.txt # → らっぱ
ファイル構造はこうなっています。
サブフォルダ直下の.txt以外はall.txtに入れたくありません。
それぞれのテキストファイルの中身ってことです。すいません。
>>384
ありがとうございます。
そのfish文があまり理解できないのでよかったら教えてください。
特に正規表現部分が複雑でうまく想像できません。
サブフォルダ内には.txtではないファイルもありますが、それはall.txtに入れたくありません。
>>385
/tmp/382-test$がよくわかりません。
また
├── sub00
│ ├── 000.txt # → りんご
│ └── 001.txt # → ごりら
├── sub01
│ └──000.txt # → らっぱ
ファイル構造はこうなっています。
サブフォルダ直下の.txt以外はall.txtに入れたくありません。
387デフォルトの名無しさん
2020/12/13(日) 18:13:33.00ID:6hkD3/kE 後出しヤローに付き合ってたらエンドレスなので終了でいいと思う
388デフォルトの名無しさん
2020/12/13(日) 18:34:18.01ID:FEa/qC9x >>386
うんだからそのフォルダ構造でいいんだって。
5chは行頭空白を勝手に縮めるから階層がおかしく見えるだけ。
*.txtしかいれない設定。
find . -type f -name '*.txt' \
\( -exec sh -c 'echo "$1" | sed -e "s/\.\/sub\([[:digit:]]\{1,\}\)\/\(.*\)/\1-\2/"; cat "$1"' sh \{\} \; \) > all.txt
うんだからそのフォルダ構造でいいんだって。
5chは行頭空白を勝手に縮めるから階層がおかしく見えるだけ。
*.txtしかいれない設定。
find . -type f -name '*.txt' \
\( -exec sh -c 'echo "$1" | sed -e "s/\.\/sub\([[:digit:]]\{1,\}\)\/\(.*\)/\1-\2/"; cat "$1"' sh \{\} \; \) > all.txt
389デフォルトの名無しさん
2020/12/13(日) 18:35:35.67ID:FEa/qC9x とりあえずやってみろ。というかFish shellじゃなくてBourne系のShell(例えばBash)を使ってくれ。
390デフォルトの名無しさん
2020/12/13(日) 19:15:32.95ID:QIci+yMm それを使えって課題なんでしょ
他の使っちゃダメだよ
他の使っちゃダメだよ
391デフォルトの名無しさん
2020/12/13(日) 20:10:36.68ID:FEa/qC9x なんだ宿題か。じゃあもういいわ勝手にやってろ
392デフォルトの名無しさん
2020/12/13(日) 20:25:17.68ID:17gHgA0W POSIXじゃないからイライラしてんなw
393デフォルトの名無しさん
2020/12/13(日) 21:07:42.22ID:hmf0btsE >>392
ワロタww
ワロタww
394デフォルトの名無しさん
2020/12/13(日) 21:56:47.60ID:RA5rFVG6 >>388
ありがとうございます。
うまくいきました。
色分けされてて見た目がかっこいいのでとりあえずfishに変えてみたんですが、
ネットにあまり情報がなくて知識がないと使いこなせなそうなので考え直します。
ありがとうございます。
うまくいきました。
色分けされてて見た目がかっこいいのでとりあえずfishに変えてみたんですが、
ネットにあまり情報がなくて知識がないと使いこなせなそうなので考え直します。
395デフォルトの名無しさん
2020/12/13(日) 22:08:30.70ID:FEa/qC9x >>392
草。そんな考えになるのか
草。そんな考えになるのか
396デフォルトの名無しさん
2020/12/13(日) 22:44:39.90ID:DQhl+XfW >>394
ただ、今回の回答はほとんどfishに関係ないけどな。w
ただ、今回の回答はほとんどfishに関係ないけどな。w
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★2 [ぐれ★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★7 [おっさん友の会★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… [BFU★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- 「高市人気」どこに? 自民候補が福島市長選で大敗、葛飾区議選でも苦戦 衆院早期解散論に冷や水 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- 日本行きの航空便が50万件キャンセル。日本人「中国依存度が異常に高かったからちょうどいい😏」 [441660812]
- 日本人、ついに気づく「あれ、日本が対中国で取れる対抗措置ってなくない…?」 [931948549]
- 中国「水産物輸入停止は高市首相の発言が理由」 [256556981]
- 中国「次に禁止してほしいものを教えて」 [358382861]
- 【号外】中国外務省、高市首相が台湾関連の発言を撤回しなければ「断固たる対抗措置」を取らざるを得ないと述べた [115996789]
- 【悲報】高市早苗『嫌ああああああああああああぁぁぁぁぁっーーッッ!!私が何したって言うのよぉぉぉぉーッッ!!』 [527893826]
