シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)もしくはPOSIX準拠の互換シェルがデフォルトです。
bash/zsh/ksh/ash/dash/yash/poshなどの専用機能に依存する場合は明示しましょう。
Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
FreeBSDユーザは/bin/shの正体がashなので注意。
・POSIXについてのリンクは https://en.wikipedia.org/wiki/POSIX にまとめられています
最新の仕様はこちらへ http://pubs.opengroup.org/onlinepubs/9699919799/
(左上の「Shell & Utilities」 から参照することができます。)
・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に逃げずにシェルスクリプトで処理するのが頭のいいやり方。
質問に対して問題が間違ってるといちゃもんをつけるのもやめましょう
前スレ シェルスクリプト総合 その26
https://mevius.5ch.net/test/read.cgi/unix/1489979246/
シェルスクリプト総合 その27
■ このスレッドは過去ログ倉庫に格納されています
2018/05/03(木) 17:54:23.25
2018/06/10(日) 16:14:28.24
えっ、一行づつ fork + exec してるって本気で思い込んでるんだ…
2018/06/10(日) 16:16:58.31
2018/06/10(日) 16:22:35.88
2018/06/10(日) 16:23:33.86
データ | フィルタ | シェルスクリプト(関数なり) | フィルタ > データ
フィルタをどう作るかは具体的じゃないとでCVSしか例にあげてないからCVSなだけなんだが
っていういたって普通のことなのに。そうじゃないナニかを想定しているらしけど、そのナニかの具体的なことは全く言わずに指摘wという否定なだけだもんな
その指摘もトンチンカンなこともあり、ただただ無闇に偉ぶりたいだけにしか見えんなあ
フィルタをどう作るかは具体的じゃないとでCVSしか例にあげてないからCVSなだけなんだが
っていういたって普通のことなのに。そうじゃないナニかを想定しているらしけど、そのナニかの具体的なことは全く言わずに指摘wという否定なだけだもんな
その指摘もトンチンカンなこともあり、ただただ無闇に偉ぶりたいだけにしか見えんなあ
2018/06/10(日) 16:24:15.94
>>357
仕様よんでこい
http://www.kasai.fm/wiki/rfc4180jp
CSVの仕様においてエスケープとは
ダブルクォート " を "" と二つ連続させるものだ
\記号でエスケープする仕様はない
仕様よんでこい
http://www.kasai.fm/wiki/rfc4180jp
CSVの仕様においてエスケープとは
ダブルクォート " を "" と二つ連続させるものだ
\記号でエスケープする仕様はない
2018/06/10(日) 16:25:32.32
2018/06/10(日) 16:26:22.60
もう一つ解説記事
https://codezine.jp/article/detail/2364
> 改行コードはプラットフォームによって異なります。一般的にWindowsは
> <CR><LF>、UNIXは<LF>です。
> ※2008/04/16追記:RFCでは末尾(レコードの区切りとして)の改行は
> <CR><LF>を推奨しています。CSVを解釈するプログラムではどちらの
> 改行コードでも読めるように作ることをお勧めします
> ダブルクォートで囲む場合
> "山田","太郎","値に
> 改行や,カンマや""ダブルクォートが含まれても問題ありません。"
> まれにCSVの方言で\エスケープを行うことがあります。
>
>\エスケープを行う特殊な例
>"山田","太郎","値に改行\nや\,カンマや\"ダブルクォートが含まれても問題ありません。"
> この方言はあまり普及していませんので、利用するのは避けましょう。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
https://codezine.jp/article/detail/2364
> 改行コードはプラットフォームによって異なります。一般的にWindowsは
> <CR><LF>、UNIXは<LF>です。
> ※2008/04/16追記:RFCでは末尾(レコードの区切りとして)の改行は
> <CR><LF>を推奨しています。CSVを解釈するプログラムではどちらの
> 改行コードでも読めるように作ることをお勧めします
> ダブルクォートで囲む場合
> "山田","太郎","値に
> 改行や,カンマや""ダブルクォートが含まれても問題ありません。"
> まれにCSVの方言で\エスケープを行うことがあります。
>
>\エスケープを行う特殊な例
>"山田","太郎","値に改行\nや\,カンマや\"ダブルクォートが含まれても問題ありません。"
> この方言はあまり普及していませんので、利用するのは避けましょう。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2018/06/10(日) 16:26:49.29
2018/06/10(日) 16:27:48.82
>>363
シェルスクリプトでどう扱うかだぞ?処理をどうするかだぞ?なに言ってるの?プログラミング知らないの?
シェルスクリプトでどう扱うかだぞ?処理をどうするかだぞ?なに言ってるの?プログラミング知らないの?
365名無しさん@お腹いっぱい。
2018/06/10(日) 16:28:23.86 CSVスレになってんのはなぜなんだ
勉強にはなるけど
勉強にはなるけど
2018/06/10(日) 16:28:48.64
もう一つw
https://www.upken.jp/kb/csv.html
> RFC4180準拠
> 基本
> ヘッダーはあってもなくてもよい
> 空データフィールドがある
> 前後にスペースがあっても無視しない
> ダブルクォーテーションで囲む場合は同じレコードのすべてのフィールドをダブルクォーテーションで囲む
> 改行、ダブルクォーテーション、カンマを含むフィールドは、ダブルクォーテーションで囲むべき
> ダブルクォーテーションで囲まれているフィールドでダブルクォーテーションを使用する場合は、ダブルクォーテーションでエスケープする
> 非常に長い文字列を考慮
> 複合パターン
https://www.upken.jp/kb/csv.html
> RFC4180準拠
> 基本
> ヘッダーはあってもなくてもよい
> 空データフィールドがある
> 前後にスペースがあっても無視しない
> ダブルクォーテーションで囲む場合は同じレコードのすべてのフィールドをダブルクォーテーションで囲む
> 改行、ダブルクォーテーション、カンマを含むフィールドは、ダブルクォーテーションで囲むべき
> ダブルクォーテーションで囲まれているフィールドでダブルクォーテーションを使用する場合は、ダブルクォーテーションでエスケープする
> 非常に長い文字列を考慮
> 複合パターン
2018/06/10(日) 16:29:45.29
2018/06/10(日) 16:31:47.04
>>367
お前はどうかしてる。ここにきてCVSの仕様を得意げにあげてるのと同じヤツってことはないよな?
お前はどうかしてる。ここにきてCVSの仕様を得意げにあげてるのと同じヤツってことはないよな?
2018/06/10(日) 16:34:02.42
2018/06/10(日) 16:35:15.34
2018/06/10(日) 16:36:40.96
2018/06/10(日) 16:36:59.71
2018/06/10(日) 16:39:16.71
2018/06/10(日) 16:39:21.31
1データの中に改行が含まれてる
そのままだとデータ区切りの改行と見分けがつかない
CSV形式の話はしていない
\nにエスケープする方法では、1データずつ処理しなければならず
外部コマンド呼び出しの必要があるから遅い
ここまでは理解できてんのかなー?
そのままだとデータ区切りの改行と見分けがつかない
CSV形式の話はしていない
\nにエスケープする方法では、1データずつ処理しなければならず
外部コマンド呼び出しの必要があるから遅い
ここまでは理解できてんのかなー?
2018/06/10(日) 16:39:51.59
2018/06/10(日) 16:40:34.63
>>375
俺は最初からCSV形式のデータを扱う話なんかしてないんですが?
俺は最初からCSV形式のデータを扱う話なんかしてないんですが?
2018/06/10(日) 16:42:26.75
2018/06/10(日) 16:43:16.71
>>376
だったら何を言いたいのかさっぱり。単に絡みたいだけか
だったら何を言いたいのかさっぱり。単に絡みたいだけか
2018/06/10(日) 16:45:59.83
今更なんの話かわかってませんっていうのかよw
↓この話だろ。「?」で聞いているところが質問だよ。それぐらいわかれアホ
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から出力したデータのように
改行やカンマやダブルクォートやシングルクォートや空白が入ることがあるのです
↓この話だろ。「?」で聞いているところが質問だよ。それぐらいわかれアホ
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から出力したデータのように
改行やカンマやダブルクォートやシングルクォートや空白が入ることがあるのです
2018/06/10(日) 16:50:13.04
何を言っているのだか。最初からCSV形式のデータ扱う話なんかしてないって言っておきながら、前レスではCVSのこと「だけ」のレスなことだから、そのCVSのことだけのことを何を言いたいのかだよ
すでに書いたが、
データ | フィルタ | シェルスクリプト(関数なり) | フィルタ > データ
でしかない。CVSはどうフィルタを書く上では具体的にそれしかでしかないからだけだな
てか、その設問がそんなにきになるならお前が答えろよっw
すでに書いたが、
データ | フィルタ | シェルスクリプト(関数なり) | フィルタ > データ
でしかない。CVSはどうフィルタを書く上では具体的にそれしかでしかないからだけだな
てか、その設問がそんなにきになるならお前が答えろよっw
2018/06/10(日) 16:54:06.97
2018/06/10(日) 16:54:09.52
2018/06/10(日) 16:55:28.23
2018/06/10(日) 16:56:05.49
ダメだ。異次元すぎる>>381なんて言われると、バカだろとしかおもえん
2018/06/10(日) 16:57:43.94
2018/06/10(日) 17:01:19.44
387386
2018/06/10(日) 17:02:32.48 最 初 の フ ィ ル タ で デ ー タ に 含 ま れ る
改 行 コ ー ド を 他 の な に か に 変 換 す る な ら ば
今度はシェルスクリプトの関数に渡す前に
改行コードに戻さないといけません
でないとこれが実現できません
> syori "a1" "a2" "a3" "a4"
> syori "b1" "b2" "b3" "b4"
> syori "c1" "c2" "c3" "c4"
>
> という風にsyori関数を呼び出したいのです。
なので1データごとに改行コードをもとに戻す処理が必要になります。
すでに指摘してますがforkが発生し遅くなります。
改 行 コ ー ド を 他 の な に か に 変 換 す る な ら ば
今度はシェルスクリプトの関数に渡す前に
改行コードに戻さないといけません
でないとこれが実現できません
> syori "a1" "a2" "a3" "a4"
> syori "b1" "b2" "b3" "b4"
> syori "c1" "c2" "c3" "c4"
>
> という風にsyori関数を呼び出したいのです。
なので1データごとに改行コードをもとに戻す処理が必要になります。
すでに指摘してますがforkが発生し遅くなります。
2018/06/10(日) 17:02:57.65
言質ww
まあ、永遠に「否定だけ」してろ。もうオツムの具合わかったので、いいよ、どう思われようが
まあ、永遠に「否定だけ」してろ。もうオツムの具合わかったので、いいよ、どう思われようが
2018/06/10(日) 17:04:45.37
2018/06/10(日) 17:05:24.55
2018/06/10(日) 17:07:18.69
2018/06/10(日) 17:07:51.94
多分\エスケープ云々は途中でなんらか処理をする時にRFC準拠のエスケープだと不都合だからじゃないかな
「Mika says "I'm Happy"」という文を一つのフィールドとして処理するとき
RFC準拠だと
「Mika says ""I'm Happy""」になるけど、例えばこれをsed(1)やらawk(1)に通したいと思ったときは
「Mika says \"I'm Happy\"」という形にしたほうが処理しやすいでしょう?
そういうことなんじゃないかな。
「Mika says "I'm Happy"」という文を一つのフィールドとして処理するとき
RFC準拠だと
「Mika says ""I'm Happy""」になるけど、例えばこれをsed(1)やらawk(1)に通したいと思ったときは
「Mika says \"I'm Happy\"」という形にしたほうが処理しやすいでしょう?
そういうことなんじゃないかな。
2018/06/10(日) 17:09:13.29
>>389
シェルスクリプトに合わせた出力すればええねん
シェルスクリプトに合わせた出力すればええねん
2018/06/10(日) 17:09:28.43
>>390
だから デ ー タ の中の改 行を何かに変 換すると
もとに戻す処 理を 一 行 一 行やらない といけないから
遅くなるって指摘をずーっと前にした
その遅く なる理由を思 いつかなかった んだろ?
だから デ ー タ の中の改 行を何かに変 換すると
もとに戻す処 理を 一 行 一 行やらない といけないから
遅くなるって指摘をずーっと前にした
その遅く なる理由を思 いつかなかった んだろ?
2018/06/10(日) 17:09:57.89
2018/06/10(日) 17:10:08.09
つーかなんでさっきから、おっぱいがいっぱいとかで
書き込めないんだ?変な言葉書いてないだろ
書き込めないんだ?変な言葉書いてないだろ
2018/06/10(日) 17:17:21.14
>>394
なんで一行一行なんだか。sedかtrでやりゃええことやん。それが一行一行か?
遅くなる遅くなるって遅くなるに決まってるやん。条件によりそれが妥当かどうかなんてなんでそう否定できるのか不思議でならない
んな速度速度言うなら、Cなりでやればって言うw 遅い遅い言うてるけど、お前のもじゃどうすんの?ってのがさっぱりだな
なんで一行一行なんだか。sedかtrでやりゃええことやん。それが一行一行か?
遅くなる遅くなるって遅くなるに決まってるやん。条件によりそれが妥当かどうかなんてなんでそう否定できるのか不思議でならない
んな速度速度言うなら、Cなりでやればって言うw 遅い遅い言うてるけど、お前のもじゃどうすんの?ってのがさっぱりだな
2018/06/10(日) 17:18:30.12
>>395
何を言いたのかわかりません
何を言いたのかわかりません
2018/06/10(日) 17:22:11.92
>>392
> 「Mika says \"I'm Happy\"」という形にしたほうが処理しやすいでしょう?
今の話はもっと複雑で
「Mika says "I'm Happy
'couse picked up \10."」
という文だったらどうするか?って話なんだけどな。
いやわかるよ。どうすればいいかは。
問題はどうやってそれを実現するかって話
sedやawkに通す前に、変換すんの?
> 「Mika says \"I'm Happy\"」という形にしたほうが処理しやすいでしょう?
今の話はもっと複雑で
「Mika says "I'm Happy
'couse picked up \10."」
という文だったらどうするか?って話なんだけどな。
いやわかるよ。どうすればいいかは。
問題はどうやってそれを実現するかって話
sedやawkに通す前に、変換すんの?
2018/06/10(日) 17:24:25.73
>>399
最後にマジれすすると最初のフィルタはひとつのawkだけでできる。めーんどくさいけど
最後にマジれすすると最初のフィルタはひとつのawkだけでできる。めーんどくさいけど
2018/06/10(日) 17:25:37.95
2018/06/10(日) 17:26:19.38
>>400
最初だけできてもだめ駄目
これが実現できないと駄目
> syori "a1" "a2" "a3" "a4"
> syori "b1" "b2" "b3" "b4"
> syori "c1" "c2" "c3" "c4"
>
> という風にsyori関数を呼び出したいのです。
最初だけできてもだめ駄目
これが実現できないと駄目
> syori "a1" "a2" "a3" "a4"
> syori "b1" "b2" "b3" "b4"
> syori "c1" "c2" "c3" "c4"
>
> という風にsyori関数を呼び出したいのです。
2018/06/10(日) 17:39:23.49
>>401,402
ダメダメ言ってないで、少しは考えろ。どっちも指摘がトンチンカン
ダメダメ言ってないで、少しは考えろ。どっちも指摘がトンチンカン
2018/06/10(日) 17:48:10.30
思ったんだが
正規表現でやらずに有限状態機械を作って
if ダブルクオートで始まらない
コンマを探して終了
else
""でない"に続くコンマを探して終了
とすれば解決するんじゃないかな。少なくともRFC勧告に則ってるCSVは。
正規表現でやらずに有限状態機械を作って
if ダブルクオートで始まらない
コンマを探して終了
else
""でない"に続くコンマを探して終了
とすれば解決するんじゃないかな。少なくともRFC勧告に則ってるCSVは。
2018/06/10(日) 18:47:23.27
どういうことだ
2018/06/10(日) 19:24:35.96
盛り上がりすぎだろwwww一日100近く伸びるってどんだけだwwww
2018/06/10(日) 20:05:44.39
>>385
どうやってそれを区別するの?
どうやってそれを区別するの?
2018/06/10(日) 20:07:14.87
>>397
sedは改行コードで切れちゃうから、データ中の改行と行の区切りの区別をつけられないだろ
sedは改行コードで切れちゃうから、データ中の改行と行の区切りの区別をつけられないだろ
2018/06/10(日) 20:08:19.79
>>404
CSVじゃないらしいので、"が閉じてる必要はないだろう?
CSVじゃないらしいので、"が閉じてる必要はないだろう?
410名無しさん@お腹いっぱい。
2018/06/10(日) 20:27:13.49 【またカミカゼ暴走、群馬のスーパー、重傷9人】 放射能が原因だけど、国防上、トップシークレット?
http://rosie.5ch.net/test/read.cgi/liveplus/1528627781/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1528627781/l50
2018/06/10(日) 20:50:13.84
>>408
後処理のだぞ。そのデータ中の改行と行の区切りの区別をつけるために最初にータ中の改行を処理して、終わったらデータ中の改行を戻すって話だぞ?
少しは処理を想像そしてからなんか言ったら?すごい近視眼で明後日な文句言う前に
後処理のだぞ。そのデータ中の改行と行の区切りの区別をつけるために最初にータ中の改行を処理して、終わったらデータ中の改行を戻すって話だぞ?
少しは処理を想像そしてからなんか言ったら?すごい近視眼で明後日な文句言う前に
2018/06/10(日) 20:55:32.25
>>409
CSVじゃないからあって言うのもいるけど、だったらデータはどう表すのだろうな
データ中の改行と行の区切りの改行ってわからなくね?そのためにデータの始め終わりを表す何かが必要でそれが何かを言ってないんだったら、それを " として話をしてもおかしくはないってか、それしかないだろう
なんでそんな近視眼なツッコミばかりやねん
CSVじゃないからあって言うのもいるけど、だったらデータはどう表すのだろうな
データ中の改行と行の区切りの改行ってわからなくね?そのためにデータの始め終わりを表す何かが必要でそれが何かを言ってないんだったら、それを " として話をしてもおかしくはないってか、それしかないだろう
なんでそんな近視眼なツッコミばかりやねん
2018/06/10(日) 20:56:07.54
>>282
GNU awk の FPAT を使ってみる。一論理行のデータ数は4個で固定、という前提。
gawk -v RS='\0' -v FPAT='"(([^,\n]*)|(([^"]|\\\\"|\"\")*))"' \
'function syori(v1,v2,v3,v4){ ## ここで何らかの処理 ## }
{
i=1
while(i<NF){
syori($(i++),$(i++),$(i++),$(i++))
}
}' data.txt
GNU awk の FPAT を使ってみる。一論理行のデータ数は4個で固定、という前提。
gawk -v RS='\0' -v FPAT='"(([^,\n]*)|(([^"]|\\\\"|\"\")*))"' \
'function syori(v1,v2,v3,v4){ ## ここで何らかの処理 ## }
{
i=1
while(i<NF){
syori($(i++),$(i++),$(i++),$(i++))
}
}' data.txt
2018/06/10(日) 22:03:59.12
>>411
> 終わったらデータ中の改行を戻すって話だぞ?
そのときに全データの改行を一度に戻すとデータの中の改行と
データ区切りの改行の区別がつかなくなってしまうので、
1データずつ処理する=1行ずつsedなどを実行して遅くなるってことには
気づきましたか?
> 終わったらデータ中の改行を戻すって話だぞ?
そのときに全データの改行を一度に戻すとデータの中の改行と
データ区切りの改行の区別がつかなくなってしまうので、
1データずつ処理する=1行ずつsedなどを実行して遅くなるってことには
気づきましたか?
2018/06/10(日) 22:29:15.51
2018/06/10(日) 22:30:35.05
2018/06/10(日) 22:42:11.32
>>414-416
前処理と後処理を混同してあーだこーだ言われても。アホかっ
前処理と後処理を混同してあーだこーだ言われても。アホかっ
2018/06/10(日) 22:48:58.34
2018/06/10(日) 22:49:09.09
2018/06/10(日) 22:49:14.03
もう一から説明しないと、情報処理の基本すらわかってないようなので
バカバカしすぎだけど、
・改行がデータ中とレコードの終わりを示すのが混在している
・シェルスクリプトは基本、改行は改行でしかなく、データ中なんて知らんただの一行=レコードがブッタ切られる
・データ中の改行を他のナニかに変えれば、シェルスクリプトは一行=1レコードと認識する
前処理:データ中の改行だけをナニかに変える
本処理:改行が終端の一行=1レコードを処理する
後処理:ナニかに変えたのを改行に戻す
たった、これだけのことをなぜ理解できないでトンチンカンなことばっかり言うのか。前処理をsedでできるなんて言ったことないぞ(できるかもだが、それはもっと面倒なの俺は考えんw)。後処理はsedでできることは馬鹿でもわかるだろうにぃぃぃ
バカバカしすぎだけど、
・改行がデータ中とレコードの終わりを示すのが混在している
・シェルスクリプトは基本、改行は改行でしかなく、データ中なんて知らんただの一行=レコードがブッタ切られる
・データ中の改行を他のナニかに変えれば、シェルスクリプトは一行=1レコードと認識する
前処理:データ中の改行だけをナニかに変える
本処理:改行が終端の一行=1レコードを処理する
後処理:ナニかに変えたのを改行に戻す
たった、これだけのことをなぜ理解できないでトンチンカンなことばっかり言うのか。前処理をsedでできるなんて言ったことないぞ(できるかもだが、それはもっと面倒なの俺は考えんw)。後処理はsedでできることは馬鹿でもわかるだろうにぃぃぃ
2018/06/10(日) 22:50:39.10
2018/06/10(日) 22:50:59.99
>>420に補足すると、
(POSIXの範囲では)readは必ず改行コードでぶった切られる
(POSIXの範囲では)readは必ず改行コードでぶった切られる
2018/06/10(日) 22:53:10.76
>>420
> 前処理:データ中の改行だけをナニかに変える
> 本処理:改行が終端の一行=1レコードを処理する
> 後処理:ナニかに変えたのを改行に戻す
それは理解しているが、
1. 改行を何かに また 何かを改行にするには、どうやるのか?
2. 変える または 戻す 処理は1コマンドで実行できるのか?
の答えが、1行ずつfork、execしなきゃならないから
データ量に比例して遅くなるって話をしてる
> 前処理:データ中の改行だけをナニかに変える
> 本処理:改行が終端の一行=1レコードを処理する
> 後処理:ナニかに変えたのを改行に戻す
それは理解しているが、
1. 改行を何かに また 何かを改行にするには、どうやるのか?
2. 変える または 戻す 処理は1コマンドで実行できるのか?
の答えが、1行ずつfork、execしなきゃならないから
データ量に比例して遅くなるって話をしてる
2018/06/10(日) 22:55:00.78
2018/06/10(日) 22:55:49.68
やたらスレが延びてるけど動くモノが出来上がる気配がない
さっさと手を動かせよ
さっさと手を動かせよ
2018/06/10(日) 22:56:51.41
2018/06/10(日) 22:56:58.92
> 1行ずつfork、execしなくてもいい方法もあるのに
それがもっと遅くなる方法だったら笑うがねw
それがもっと遅くなる方法だったら笑うがねw
2018/06/10(日) 22:58:11.88
2018/06/10(日) 22:58:14.56
最初の質問者じゃなかった、何を目的に延々と絡んでるのか意味不明すぎ
できないできないってばかりで
できないできないってばかりで
430426
2018/06/10(日) 22:59:16.28 あ、「安全な文字」っていうのは「通常の用途に使われるけれども日本語圏では滅多に使われない文字」の意味だったのね。
俺の解釈としてはUnicodeに収録されてる四種の区切り文字も「安全な文字」の類に入るからさ。
勘違いしてすまんな
俺の解釈としてはUnicodeに収録されてる四種の区切り文字も「安全な文字」の類に入るからさ。
勘違いしてすまんな
2018/06/10(日) 22:59:31.44
bash拡張は置換命令あるけど、
POSIXシェルの場合、外部コマンドを呼び出す以外に
置換命令はないんだよ。知ってる?
POSIXシェルの場合、外部コマンドを呼び出す以外に
置換命令はないんだよ。知ってる?
2018/06/10(日) 23:03:46.06
>>430
> 俺の解釈としてはUnicodeに収録されてる四種の区切り文字も「安全な文字」の類に入るからさ。
まさに、ぽか〜んだわw
今度はお前にUTF-8の講釈をしないといかんのか?
Unix系で簡単に使えるUnicodeはUTF-8しかないが
(その他のエンコードは、文字の中にNULL文字が入るためシェルスクリプトで扱えない)
そのUTF-8はASCII互換であるため、U+001EやU+001Fは
ASCIIコードの0x1Eと0x1Fと全く同じであるため、
この文脈で、Unicodeかどうかなんて考える必要ないんだよ
> 俺の解釈としてはUnicodeに収録されてる四種の区切り文字も「安全な文字」の類に入るからさ。
まさに、ぽか〜んだわw
今度はお前にUTF-8の講釈をしないといかんのか?
Unix系で簡単に使えるUnicodeはUTF-8しかないが
(その他のエンコードは、文字の中にNULL文字が入るためシェルスクリプトで扱えない)
そのUTF-8はASCII互換であるため、U+001EやU+001Fは
ASCIIコードの0x1Eと0x1Fと全く同じであるため、
この文脈で、Unicodeかどうかなんて考える必要ないんだよ
2018/06/10(日) 23:05:23.11
2018/06/10(日) 23:07:34.36
2018/06/10(日) 23:13:46.83
>>433
> それは元々のデータがそうであるってこと?
ちょっと違うな
「元々のデータがそうであってもよい」ってこと
元々のデータ形式について指定はないのだから
(処理するには効率の悪い)CSVデータでもOKだし、
どんなデータでもよい
そのデータ形式も含めて、
どうしたらいいでしょうか?という話だ
> それは元々のデータがそうであるってこと?
ちょっと違うな
「元々のデータがそうであってもよい」ってこと
元々のデータ形式について指定はないのだから
(処理するには効率の悪い)CSVデータでもOKだし、
どんなデータでもよい
そのデータ形式も含めて、
どうしたらいいでしょうか?という話だ
2018/06/10(日) 23:15:22.00
>>435
データの改行とそうじゃない改行をどうすんの?どうやんの?
データの改行とそうじゃない改行をどうすんの?どうやんの?
437435
2018/06/10(日) 23:16:17.88 まあ、そのデータもシェルスクリプトで生成はするんだけどな
シェルスクリプト1 → 何らかのデータ形式 → シェルスクリプト2
「何らかのデータ形式」のデータの中に(データ区切りの改行とは別に)
1データの値として改行等が含まれることがあるのでどうすっかなーって話
シェルスクリプト1 → 何らかのデータ形式 → シェルスクリプト2
「何らかのデータ形式」のデータの中に(データ区切りの改行とは別に)
1データの値として改行等が含まれることがあるのでどうすっかなーって話
2018/06/10(日) 23:16:40.28
2018/06/10(日) 23:17:19.92
>>436
> データの改行とそうじゃない改行をどうすんの?どうやんの?
そこをどうするのが質問だって〜の
> Excelから出力したCSVのように一行(?)の中に改行が含まれた
> データを扱うにはどうしたら良いでしょうか?
って書いてあるんだろ
> データの改行とそうじゃない改行をどうすんの?どうやんの?
そこをどうするのが質問だって〜の
> Excelから出力したCSVのように一行(?)の中に改行が含まれた
> データを扱うにはどうしたら良いでしょうか?
って書いてあるんだろ
2018/06/10(日) 23:18:11.57
>>437
ん?変換するんじゃないの?変換するなら別にコードがどの値とかは関係ないだろうし??ん??
ん?変換するんじゃないの?変換するなら別にコードがどの値とかは関係ないだろうし??ん??
2018/06/10(日) 23:19:01.94
2018/06/10(日) 23:19:23.68
>>439
初期から出てるだろ
初期から出てるだろ
2018/06/10(日) 23:20:29.10
>>440
だから 改行コードとか\を 安全な文字に置換すんなってw
だから 改行コードとか\を 安全な文字に置換すんなってw
2018/06/10(日) 23:21:35.91
また変換すんな君が出てるし。代替案を何も言わずに遅い遅いだけな。お前が遅々として進まんわっ
2018/06/10(日) 23:21:59.29
>>442
> 初期から出てるだろ
残念 ながら出てない。 \ を安全 な文字に変 換ってことは
つまりデータを 変 換すると言ってる わけだが、
データは 変換(置換)するななってのが
俺の煽ってる内容
> 初期から出てるだろ
残念 ながら出てない。 \ を安全 な文字に変 換ってことは
つまりデータを 変 換すると言ってる わけだが、
データは 変換(置換)するななってのが
俺の煽ってる内容
2018/06/10(日) 23:22:01.17
>>435
CSVのRFCはフィールド・レコード区切りにU+001F/Eを使えなんて一言も言ってねぇぞ
つーかそれこそコンマと改行が区切り文字ですよと言ってる。
そういうデータを扱うことを議論してる時に、横から偉そうな態度で
「データ区切り専用の文字があるんだから元のデータにそれを使うべき」
なんて言われてもなぁ……。
あなたは論理的思考に弱いようだからもう一度同じことを違う言い方で繰り返すと、
「前提を無視した発言は控えてください」
分かった?
CSVのRFCはフィールド・レコード区切りにU+001F/Eを使えなんて一言も言ってねぇぞ
つーかそれこそコンマと改行が区切り文字ですよと言ってる。
そういうデータを扱うことを議論してる時に、横から偉そうな態度で
「データ区切り専用の文字があるんだから元のデータにそれを使うべき」
なんて言われてもなぁ……。
あなたは論理的思考に弱いようだからもう一度同じことを違う言い方で繰り返すと、
「前提を無視した発言は控えてください」
分かった?
2018/06/10(日) 23:22:47.84
>>445
お前は何も進まないので、もう以後無視します
お前は何も進まないので、もう以後無視します
2018/06/10(日) 23:23:45.97
2018/06/10(日) 23:24:21.02
2018/06/10(日) 23:24:54.06
2018/06/10(日) 23:26:44.47
2018/06/10(日) 23:28:24.22
>>450
お前本当に馬鹿だなw
1データの中に改行コードが含まれてるなら、
(データの中に含まれる改行コードではなく)
データの区切りの方を改行コードではなく、
そのために作られた制御文字を使うって話で
代替案になってるだろ
頭硬すぎw
なんで1データを必ず改行コード区切りにしないといけないのか
シェルスクリプトは1行ずつ読み取る(のが得意)ってだけで
データの区切りまで改行コード区切りにする必要はない
つーかこの制御文字がなぜ用意されているかに気づかんの?
いやはや、ここまで言わんと理解できないのか
お前本当に馬鹿だなw
1データの中に改行コードが含まれてるなら、
(データの中に含まれる改行コードではなく)
データの区切りの方を改行コードではなく、
そのために作られた制御文字を使うって話で
代替案になってるだろ
頭硬すぎw
なんで1データを必ず改行コード区切りにしないといけないのか
シェルスクリプトは1行ずつ読み取る(のが得意)ってだけで
データの区切りまで改行コード区切りにする必要はない
つーかこの制御文字がなぜ用意されているかに気づかんの?
いやはや、ここまで言わんと理解できないのか
2018/06/10(日) 23:28:31.79
2018/06/10(日) 23:31:18.96
なんでこんなに荒れてんのよ
2018/06/10(日) 23:31:40.43
2018/06/10(日) 23:33:06.87
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【独自】渡邊渚さんを脅迫の疑いで32歳女を書類送検 警視庁 渡邊さんの写真集に包丁置いた写真を投稿 [ひかり★]
- 中国 東アジアの海域に過去最大規模 100隻超の艦船を展開 高市総理の発言に反発か ★2 [Hitzeschleier★]
- “信号待ち”中国人観光客2人死亡の山陽電鉄踏切事故 遺族が約1億4000万円賠償求め提訴 神戸地裁 [七波羅探題★]
- 【千葉】「今ぶつかっただろ。痛えじゃねえか。骨折れてるぞ。慰謝料払えよ」 松戸駅で40代男性に因縁をつけ暴行、強盗 男5人を逮捕 [シャチ★]
- 【速報】山本由伸のWBC欠場決定! [牛丼★]
- 「さようなら日本。帰国します」経営ビザで中国系「ペーパー会社」大阪で乱立、移民ビジネスの仕組み…500社超で取締役の日本側協力者も [ぐれ★]
- 【高市日産】中国🇨🇳新車販売。日産が絶好調!トヨタホンダが前年割れが続く中で、6ヶ月連続前年比プラスを達成🎉 [485983549]
- バカ「ピットブルは危険」👉ガチのマジで2秒で論破されてしまう [329329848]
- 【高市カード】 マイナンバーカード。1億枚を突破 🎉 保有率80%超え。 持ってないのって、お前らとバカウヨだけじゃね? [485983549]
- 整形女がキレる「カリカリ」イラストを実写化 [663382246]
- 高市支持者、質問主意書回答で「存立危機事態が何かは具体的に言えない」という回答した事実を直視できずスルーへ…. [469534301]
- シャラップ上田、統一教会関係の団体で理事に出世していた [389326466]
