シェルスクリプト総合 その36

■ このスレッドは過去ログ倉庫に格納されています
2021/02/25(木) 09:20:14.64ID:ZyJLXTlk
シェルスクリプトに関する総合スレッドです。

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。

前スレ: シェルスクリプト総合 その35
https://mevius.5ch.net/test/read.cgi/tech/1606221440/

関連スレ
・【Bash】Windows Subsystem for Linux【WSL】9
https://mao.5ch.net/test/read.cgi/linux/1607589861/
・Bashでプログラミング [転載禁止](c)2ch.net
https://mao.5ch.net/test/read.cgi/linux/1443885102/
・シェルスクリプト総合 その28
https://mevius.5ch.net/test/read.cgi/unix/1533154936/
・zsh その7
https://mevius.5ch.net/test/read.cgi/unix/1337844883/
・過去UNIXで使われていた ksh というシェルについて
https://mevius.5ch.net/test/read.cgi/unix/1582358403/
・【POSIX】UNIXプログラミング【BSD】 [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/unix/1443103705/
・おまえら! shell は何を使っているんですか?
https://mevius.5ch.net/test/read.cgi/unix/1012330865/
2021/08/01(日) 10:34:45.80ID:GhkJ8vMz
>>792
不正アクセスの意味すら知らんやつがスクレイピングしたらだめだぞ
794デフォルトの名無しさん
垢版 |
2021/08/01(日) 11:26:43.15ID:boMMlR1G
>>792
あれは常識的に考えて安全なスクレイピングクライアントでも
サーバー側のミス(接続ごとにcloseしてない)が原因で
負荷かけてないつもりが負荷かかったーって理由で逮捕だから理不尽すぎるわ
2021/08/01(日) 12:49:15.25ID:ekL5DYUO
googleが関わっているサイトはそもそもスクレイピングをさせないよね
自動的にやっていることが分かった瞬間にアクセスを出来なくしている
アルゴリズムは非公開
時間間隔を見ているとかそういう単純なものではないらしい
2021/08/01(日) 13:16:33.62ID:RrS7g+U3
youtubeとか普通に出来てるんだが
特に規制くらったりは無いな
2021/08/01(日) 21:46:14.00ID:dQpg7mz5
google検索を自動にしようとすると規制を受けるよ
2021/08/04(水) 02:42:48.46ID:bE85vB+i
zshで走るスクリプトをもらったんですが、bashで走らせるとどこかでエラーになるようです。
一応bashで走るようにしたいんですが、スクリプトのどういう部分をチェックしたらいい、みたいの
ってあります?
2021/08/04(水) 04:05:35.99ID:rVD3iYVZ
ググればある
問題点を絞り込めないんだったら、Webで長く書いてくれてるのを読もう
2021/08/04(水) 10:23:51.95ID:sXlocsw8
1行ずつ貼り付けて実行してエラー箇所確認できないの
2021/08/04(水) 14:54:33.64ID:oTWoXRyh
いやーここの皆さんならエスパーしていただけるかと思ったのですが。

とりあえず line 25: zparseopts: command not found と出ました。
2021/08/04(水) 15:57:29.74ID:ZkQ7EvI3
zsh固有のを使ってるつもりが無くてもbashで動かないのは、
いくつかある動作の僅かな差異でもありえるし、そのどれを使ってもわからんから、
エスパーは無理だろな

command not found やん。モロzsh固有の使っててやん
zsh固有のなんてもっとあるんだから、エスパーは尚更無理だろうな

getopt/getoptsを書き換えればいいだろう、その部分の話なら
他にもあるんだったら、command not foundもわからないんだったら自力では山が高いとしか思えんけど、自力で頑張れ
2021/08/04(水) 17:01:53.30ID:vF9ccavM
つーか、何が起きるかわからんのに、別シェルのスクリプトをわからんままによく実行できるな。w
メチャクチャに壊されるかもなのに。
2021/08/04(水) 17:57:21.23ID:f2ZFKBK8
zshって真面目にドキュメント読もうとすると
機能多すぎて嫌になるよねw
2021/08/04(水) 17:57:42.62ID:f2ZFKBK8
おや?chromeから書き込めた???
2021/08/04(水) 17:58:08.01ID:f2ZFKBK8
あ、janeからも書き込めたw
禁止解除されたかwww
2021/08/04(水) 17:59:30.91ID:f2ZFKBK8
っていうか普通にzshインストールすりゃいいだけじゃん
2021/08/04(水) 18:18:14.91ID:VUbcTRKP
別にメチャクチャに壊されても構わんのだろう?
2021/08/04(水) 18:21:21.06ID:f2ZFKBK8
そのシェルスクリプトの最初に

if [ $BASH_VERSION ]; then
 sudo apt-get update && sudo apt-get install -y zsh
 zsh "$0" "$@"
fi

とか書いておけば動くんじゃね?www
2021/08/04(水) 19:21:42.69ID:ZkQ7EvI3
>>808
>もらった
んだから普通は知り合いからだろうし、何をするのかもわかってるだろう
知り合いで当たり前のように悪さするような>>803のようなのwはまあ普通はいないわな
あんまよくわかってなさそうで、何をするかはわかってるが途中で失敗した時の弊害とかはわからんかも知れんけど
2021/08/04(水) 19:31:41.64ID:f2ZFKBK8
zshで動くものをbashで動かしたら何が起きるかわからんじゃん
そのzshスクリプトはエラーでちゃんと停止するんか?
想定とは違うディレクトリで中途半端に動いたりしないんか?
2021/08/04(水) 19:36:30.26ID:ZkQ7EvI3
>何をするのかもわかってるだろう
のうちだろ
動作させないと何が問題かわからんし、そもそもどの程度の知識かもわからんし
仮に何かあっても、全く何もわからないのにbashで動くようにしたいという望みを持った勉強代だなw

動作させないと何が問題かわからんのだから、問いに対して動かしてみろと言うのは当たり前の話でしかないだろう
何を言いたいのかわからんぞ
2021/08/04(水) 19:56:41.44ID:oNOmhdBC
どうなるか分からんけどとりあえず動かしたいならdockerコンテナ上で試せばいい
2021/08/04(水) 20:04:22.89ID:vF9ccavM
>>810
結局、わからんのやないか!
アホなの?w

コマンドや変数展開の違いとかでちょうどヤバい状況になる可能性もあるのに。
2021/08/04(水) 20:09:58.00ID:ZkQ7EvI3
>>814
仮に何かあっても、全く何もわからないのにbashで動くようにしたいという望みを持った勉強代だなw
>>810にそもそもその言うのも含んでるし

そして実際にはとりあえず何も無かったようなのに、想像だけ読まないで文句言ってもしょうがないよ
2021/08/04(水) 21:08:01.90ID:vF9ccavM
>>815
知らんがな。
そもそも、>>803に悪意を想像すんな!
2021/08/04(水) 21:28:34.60ID:ZkQ7EvI3
>>816
何が知らんがなだよw
「メチャクチャ」に「壊される」からは悪意を想像しても不思議ではないと思うけどなあ
そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
2021/08/05(木) 00:09:48.84ID:r/zZzNU4
>>817
超ふしぎじゃ。
壊す主体は、動作の読めないスクリプトに決まってるやろ。
読解力ゼロなんか。w

> そんななんかダメなとこあったらメチャクチャに壊すスクリプトもそう無いだろうからな。そんなのばっか書いてるの?
たまたまrm *になるだけでおしまいやぞ?
2021/08/05(木) 02:16:14.66ID:uXuSxWIZ
>>818
何を言っているんだかな
何が「主体」だか、当たり前だろ。その主体に悪意があるかもしれないって話だろう
「メチャクチャ」に「壊される」が悪意を持って書かれたスクリプトを表すと読めても不思議ではないって話なんだが
読めないのはどっちなんだかなw

たまたまとか頻度がわからんな。すぐにそんなの想像してしまうぐらいの頻度で書いてるのか?w
とか、もうアレだけどw とりあえず単なる杞憂でしかないのは質問者の最初のレスで明らかだし、自己責任の範囲。やってくれないとレスしようがないし、
やってちょっとはその具体的な実行結果を出してくれたことにより、原因他が明確(*)になってんだから、ただの蛇足もこれまでにしとこな
*)お前の最初のレスもそれにより=ほとんど何も知らない人だったとわかってだろう?w
2021/08/05(木) 08:32:13.08ID:RD0C5s2g
ども、801です、盛り上がらせてしまいすみません。
どちらかというと興味として、素朴に、zshもbashもshベースで割と簡単に移植できるのかな? と
思ったんですが、結局それはNOってことですかね?

ちなみにzparseoptsというのはあからさまにzshの関数ぽいですが、
他に、どうやら変数(の中身)の展開に違いがある? ような感じでスクリプト中で呼ばれるコマンド
の引数に正しい値が渡らなかったりしてるようです。
2021/08/05(木) 09:00:33.95ID:zI5dwTpx
・POSIX(sh)のだけ使ってる
・bashにもzshにもあるのを使ってる
は、問題があったら調整ちょっと手直し程度
・zshにしかないのを使ってる
は、当然、該当部分の書き換えが必要

少しは知っているのならYESだが、
ちょっと何も知らないようなので自分で勉強する気やる気があるのかによる。今はNOだろな
2021/08/05(木) 09:53:44.33ID:r/zZzNU4
>>819
んな話はしていない。
無生物に悪意を妄想すな!
2021/08/05(木) 10:12:10.01ID:hsHiTAxc
shベースはPOSIX shベースって言えばいいと思うけど
bashとzshに共通のものってなんて言えばいいんだろうね
2021/08/05(木) 13:21:07.18ID:zot0pp1g
どちらもkshの美味しいとこ取りってとこ?
2021/08/05(木) 16:55:00.26ID:zI5dwTpx
>>822
わざとなのかなんなのか
悪意を持って書かれたスクリプト
な、いちおう
一行目からはわざとではないみたいだが、だったら、読解力ゼロなんかを自分で嚙みしめようなw
2021/08/05(木) 17:17:04.23ID:zI5dwTpx
>>823,824
bash/zshフレンドリー?w
共通仕様の公式なドキュメントがあるわけでもなく、書いた人の知見頼りだろから、そう何か明確な名称的なのはなさげかなあ

kshからのが多そうね。bashが最初でzshでも採用ってなかったかなあ
2021/08/05(木) 18:09:04.60ID:r/zZzNU4
>>825
んな話はしていない。
おまえが妄想を混ぜただけ。
読解力ゼロ。w
2021/08/05(木) 18:11:34.02ID:zI5dwTpx
>>827
マジでなのか
しつこいなw繰り返すだけのを、内容無いのを、よくできるなあ
何が面白い(自分にとってな)と思ってやってるの?会話としてでもなさげで
2021/08/05(木) 19:53:25.65ID:r/zZzNU4
>>828
おまえがな!w
2021/08/05(木) 21:42:19.84ID:2EEp5i6b
ばーかばーか
2021/08/05(木) 22:23:46.98ID:zI5dwTpx
>>829
会話にならん、なってないぞwイミフすぎ
何が面白い(自分にとってな)と思ってやってるのかだけしかもう興味がなかったけど、それを知るのも無理そうだなw
まあ終わりだな
2021/08/05(木) 23:29:03.88ID:vcYli3BC
setコマンドで位置パラメータを指定するときに、
引用符でかこわれていない変数がフィールド分割されるかどうかって決まってたっけ?

setの仕様にはそれらしき記述はなし。
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_25

BashやYashでは分割されて,Dashでは分割されない。
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ yash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
2021/08/05(木) 23:45:20.11ID:r/zZzNU4
>>831
しゃあない。
おまえは読解力ゼロやからな。w
2021/08/06(金) 04:00:19.09ID:rcBy4jaU
>>832
setとか関係ないだろ
どのコマンドでも一緒だ
2021/08/06(金) 14:52:24.37ID:j92KspJx
>>834 ???
bash -c '
a="1 2 3"
printf "/%s/" $a
'
dash -c '
a="1 2 3"
printf "/%s/" $a
'
2021/08/06(金) 15:08:57.47ID:rcBy4jaU
>>835
あのさぁ、なんで実行結果を書かないの?
やってみればすぐわかるだろ

$ bash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/

dash -c '
> a="1 2 3"
> printf "/%s/" $a
> '
/1//2//3/


まーーーーーーーーーったく同じ
2021/08/06(金) 17:19:21.97ID:j92KspJx
>>836
いやさ,それの実行結果が一緒なのに,
$ bash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a
$ dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
→a b c
こうなるのはおかしいだろってことだよ。

話わかってるか?
2021/08/06(金) 17:26:48.38ID:rcBy4jaU
消えな。いちいちデマ流すな。

dash -c '
set -- "a b c" "d e f"
set -- $1 "$@"
echo $1
'
a
2021/08/06(金) 19:29:06.94ID:mgQwZ+tq
dashで>>832見たとき試した時は、
a b c
になったけど、しばらくしたらなぜかw、
a
になるようになった、にしかならないようになった

とりあえず、現在は a b c は気のせい/何かの間違いだなと思ってるw
(多分なんかの環境値かなあ??)
メイン環境ではこんなんだったけど、ほぼあんま使わないクリーンに近いUbuntu(VM)でも a だからな

zshはデフォでは、
a b c
emulate posix でも a b c、emulate bash で a
posix でも a になるべきなんだろうな
単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ
2021/08/06(金) 19:38:55.34ID:rcBy4jaU
自分のミスを素直に認められるようになろうな
2021/08/06(金) 21:35:38.59ID:mgQwZ+tq
俺は ID:j92KspJx でないからな
2021/08/06(金) 23:44:34.47ID:j92KspJx
ミスといえば >>832>>834 の流れを読まずに
>>835 だけを見て意味不明な返信 (>>836) をしてたミス≠ヘどうするんだろうな。
2021/08/07(土) 01:06:35.02ID:m9mcPIVQ
お前もある意味勘違い(他の環境でなり試せばわかること)で騒いでいたんだから、
何をなんかその嫌らしいことすんなよ
2021/08/07(土) 01:06:57.62ID:m9mcPIVQ
俺は ID:mgQwZ+tq なw
2021/08/07(土) 01:50:03.69ID:m9mcPIVQ
>>839
>emulate posix でも a b c、emulate bash で a
>posix でも a になるべきなんだろうな
>単に shwordsplit on にするだけだけど emulate posix 時オプションセットのバグかなあ

posix shell を emulate する場合は posix ではなく sh か
じゃあ、psoix はなんなんねん、イマイチわからない。もしかしてそんなの無いとかか??w

emulate sh にしたら、
shwordsplit on
になるかと思いきや、
noshwordsplit off
って、shwordsplitに変わってnoshwordsplitに(同じだが)。そんなにoffに拘りたいのか

なかなかクセが強い感じw
ほぼzshネタ。でも、zshでposix shell互換にするにはというお話でした
2021/08/07(土) 03:07:17.12ID:UOc5M9xg
zshでemulate bachfileってやったら
バッチファイルモードになったYO!
2021/08/07(土) 08:27:51.67ID:m9mcPIVQ
なる。 zsh|sh|ksh|csh だけか
以外ではエラーにならずに zsh が指定されたとみなすか

起動時とのでオプション変わるから別のオプションセットがセットされてんのかと思った
2021/08/07(土) 08:34:57.40ID:UOc5M9xg
emulate cshってどこまでcshと互換性あるの?
cshのシェルスクリプトがzshで動くわけ?
2021/08/07(土) 08:36:21.73ID:m9mcPIVQ
>以外ではエラーにならずに zsh が指定されたとみなすか
いや、bash が指定されたら sh とみなすってのはあるみたいだな。例外か?
bash対応のチラっとあるからbash互換のオプションセットがあるのかと期待してた/思い込んでたんだけど、単に(例外的に) posix shell 互換にするだけなのね
2021/08/07(土) 08:40:12.61ID:UOc5M9xg
emulate "b型の血液が足りないんです!どなたか!どなたかいませんか?"
だったらshになるな。うん。
2021/08/07(土) 08:41:49.65ID:m9mcPIVQ
>>848
シェルオプションが変わるだけかなあ
一応、元々 ksh+tcsh で開発されてるし、cshの命令文も動いたりもするが、なんか全部ってわけじゃないなて結論で俺は確認はやめてた、以前
cshのオプションセットになったら、もっとちゃんと動くのかもしれないし大したことがないかもしれない、どうなんだろねw
2021/08/07(土) 08:42:50.92ID:m9mcPIVQ
>>850
へー
てか、お前詳しくzsh知ってるだろ?
2021/08/07(土) 08:44:08.17ID:UOc5M9xg
cshの命令というかコマンド?は、互換関数でも作れば対応できるんじゃねと思ってるんであんまり気にしないんだが
cshの文法ってzshに組み込めるようなものなのかなって気になってる
cshよく知らんけど、文法自体が少ないのか?関数もなかったはずだよね
2021/08/07(土) 08:48:10.86ID:UOc5M9xg
>>852
いやしらんてw
昔の人の実装者の気持ちになって考えたら
「お?これだけのパターンなら最初の一文字だけ比較すればいいんじゃね?俺天才じゃねwww」って
考えそうだなって思っただけ

なんつーか、手抜きだよなー。

あー、というかこれbash対応じゃなくて
bourne対応じゃね?bourne=shだし
2021/08/07(土) 08:50:44.33ID:UOc5M9xg
bshのパターンも有るか。でもjshはzshだな
2021/08/07(土) 08:58:13.11ID:m9mcPIVQ
>>853
素では、cshの(一部)命令も書ける=B shellとチャンポンできるて感じ
ベースは B shell だがそれに csh の命令文も B shell の命令文と同じように書けるって感じ。関数も普通に使える
emulate csh でそゆのがどう変化する/壊れるのかは試してもないのでわからん、どうなんだろねw

>>854,855
なるほど、それは失礼
zshが起動された時の 起動名 (shだったらsh互換でとかの) が確かそんな感じで判断しますのようなのがあったな、そういえばってので
それと同じかもっと手抜きなのかもね
2021/08/07(土) 10:53:52.05ID:231wocV5
ボーンシェル
コーンシェル
ゾーンシェル

ぞーーーーーん!
2021/08/07(土) 12:55:43.98ID:UOc5M9xg
トリビア

1985年に日本で生まれたシェルがある
そのシェルは 2020年まで存在していた

その名も
2021/08/07(土) 18:45:34.65ID:RMo9hPMi
シェルじゃなくてシエル?

あ、これは1991年だった。
2021/08/09(月) 01:48:03.65ID:Ln+AsnId
キヤノン
キユーピー
シヤチハタ
富士フイルム
エドウイン
2021/08/09(月) 03:21:27.64ID:iQ+Egq/N
中川しようこ
2021/08/09(月) 12:43:08.30ID:GX8oEfXz
ビックカメラ
2021/08/10(火) 04:05:37.98ID:dBGoRJhg
>>858
オランダ産やんけ
2021/08/10(火) 22:03:06.30ID:h61oVuOW
カステラ
ゲーテ
2021/08/15(日) 22:01:32.56ID:iDzFR5O3
新しいシェルを作りたいのですが
どのアルファベットが空いてますか?
866デフォルトの名無しさん
垢版 |
2021/08/15(日) 22:19:10.80ID:G/xk0WlY
iとo
2021/08/15(日) 23:21:43.56ID:ZsODeO33
bshとbashがあるくらいなんやから、一切気にしなきゃええんちゃう?w

勝てば官軍!
勝てばね!
ふつうは、戦える立場になれないけど!
2021/08/16(月) 13:46:35.37ID:umL41p0T
ishは止めれ
2021/08/16(月) 23:50:00.46ID:sZNsU9Vp
https://ja.wikipedia.org/wiki/Ish
2021/08/17(火) 00:52:16.82ID:/lTg0IsM
じゃあoshで
2021/08/17(火) 00:52:32.42ID:/lTg0IsM
おいっしゅー!
2021/08/17(火) 01:20:24.26ID:5M+zf85m
Ош
873デフォルトの名無しさん
垢版 |
2021/08/22(日) 03:53:36.86ID:0Cz6ueFz
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
874デフォルトの名無しさん
垢版 |
2021/08/22(日) 13:22:16.41ID:0Cz6ueFz
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html

第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
875デフォルトの名無しさん
垢版 |
2021/08/31(火) 18:02:21.42ID:UqDTQOtm
awkでデータの中にスペースを入れるにはどうしたらいいんでしょうか?
876デフォルトの名無しさん
垢版 |
2021/08/31(火) 18:14:12.67ID:UqDTQOtm
"a b" "c d"

みたいなデータを読み取れませんか?
2021/08/31(火) 18:41:30.09ID:zJL9bFvV
"a b" と "c d" に分割したいのであれば GNU awk の FPAT を使って

gawk -vFPAT='"[^"]*"' '{ ... }'

なんてできるけど、ダブルクォートで囲まれた内部でダブルクォートが
使われる場合には。。。
2021/08/31(火) 22:45:22.41ID:S8r07VdU
Ruby では、CSV 列内の""(クォート文字)は、\" に、
列内の改行コード・カンマ(行区切り・列区切り文字)も、適切に処理される

列内に、CSVの特殊文字、行区切り・列区切り・クォート文字が無ければ、列はクォート文字で囲まれない。
もちろん無条件に、すべての列を囲んでもよい

require 'csv'

input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT

p input_ary = CSV.parse( input ) # 2次元配列
#=> [ ["a\"a", "b,b", "あ"], ["c\nc", "d\nd"] ]

# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str

出力。元に戻る
"a""a","b,b",あ
"c
c","d
d"
2021/09/03(金) 13:05:02.74ID:prpSRVT9
うわでた
2021/09/18(土) 18:19:12.65ID:a1LlWfun
頭のおかしい人に以下のようなことを言われました

>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない

具体的な書籍名を教えてください


>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない

どこでそんなルールが決まっているのでしょうか?
2021/09/18(土) 18:28:53.74ID:6JilEPez
本人に聞けよ
2021/09/18(土) 18:42:49.46ID:jUwIv+ht
随分偉そうな質問者だこと
2021/09/18(土) 20:04:20.39ID:ra+RGGfj
スクレイピングはサイト運営からすればボットと同じ迷惑行為。警告を無視して続ければ営業妨害に認定される可能性もある。
マルチポストはいわゆるネットマナーに反する行為。質問者がマルチポストを繰り返せばその質問者が「頭のおかしい人」と看做されるだろう。
2021/09/19(日) 10:51:23.48ID:xR+u8nco
技術的に無能だが一般常識にも無能なのはたまに居るな
2021/09/19(日) 10:54:58.61ID:ZpH8FzBH
シェルショッカーとリッチー大佐のお二人ですなw
2021/09/21(火) 03:27:47.67ID:brXTSPi5
あと Ruby の基地外な
rubikitch のことじゃないよ
887デフォルトの名無しさん
垢版 |
2021/09/22(水) 14:28:08.32ID:Te29kBsr
ニュースグループならクロスポストってのが出来たんだけどな
888デフォルトの名無しさん
垢版 |
2021/09/22(水) 14:42:56.06ID:RtQe+ZM1
>>876
a_b_c_dをa_bとc_dにしたいの?
アンスコ→半角スペース
2021/10/02(土) 09:12:44.17ID:AShvd7nN
bash sample1.sh && sample2.sh
でsample.shがexitとかfalse的な感じだったらsample2.shは実行しない
という処理をするにはどうしたらいいのでしょうか・・?
2021/10/02(土) 09:30:28.85ID:AShvd7nN
補足です >>889
そもそもやりたいことはsample2.shの冒頭に
if 条件; then
echo "o"
fi
みたいな条件式が出てくるのですが
その条件は他のsample3.shでもsample4.shでも重複して出てくるので
分けたいなと思いました
そういう書き方があるのかな、と
2021/10/02(土) 11:10:29.57ID:AShvd7nN
とりあえず自己解決?しました
外部読み込みで関数引き出すことにしました
しかしなぜか
if 関数1; then
echo "o"
else
echo "x"
fi
関数1の返り値が0のとき"o"、1のとき"x"となり
思ってたのと逆になりました
関数1 () {
return 0
}
2021/10/02(土) 11:42:50.26ID:rSA8/7/e
プロセスの終了ステータスと同じ思想
0を返すなら正常
0以外を返すなら異常
2021/10/02(土) 12:39:57.86ID:AShvd7nN
>>892
なるほど
python行ったり来たりするのでなんか頭こんがりそうです;
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況