[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/25 22:56 / Filesize : 258 KB / Number-of Response : 1042
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/05/03(木) 17:54:23.25 .net]
シェルスクリプトの総合スレです。
□お約束
・特記なき場合は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 にまとめられています
 最新の仕様はこちらへ pubs.opengroup.org/onlinepubs/9699919799/
 (左上の「Shell & Utilities」 から参照することができます。)
・v7 shに一番近くて、現役(?)のshは、OpenSolaris由来のheirloom sh。
  src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
  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/

289 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/08(金) 22:06:27.92 .net]
POSIXで定義されているどの環境でも利用できる環境変数ってあります?
$PWDとか。

290 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/08(金) 22:54:13.95 .net]
>>280
環境変数で決まってるのは
pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html

ただしOS起動中まで含めると、必ず定義されてる環境変数はない。
PWDも昔のシェルだと定義してくれなかったりする。
まあ一般ユーザー権限で動いてるならPATH、HOMEあたりの存在は期待してもいいけど。

291 名前:名無しさん@お腹いっぱい。 [2018/06/08(金) 23:18:13.62 .net]
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から出力したデータのように
改行やカンマやダブルクォートやシングルクォートや空白が入ることがあるのです

292 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/08(金) 23:18:34.79 .net]
各項目には \ が入ることもあります。

今回はCSVではありませんが、RFC4180(=ExcelのCSVの仕様)では
改行が\nのようにエスケープされません

https://ja.wikipedia.org/wiki/Comma-Separated_Values

> フ

293 名前:Bールドがコンマ、ダブルクォート、改行を含む場合は、かならずダブルクォートで囲む。
> また、フィールドに含まれるダブルクォートは2つ並べてエスケープする。
>
> "日本 CRLF
> 国","""東京""","127,767,944" CRLF

↑「日本国」の国の前に改行が入っている場合
[]
[ここ壊れてます]

294 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/08(金) 23:19:28.84 .net]
>>282-283は、ここから移動してきました

【Bash】Windows Subsystem for Linux【WSL】3
https://mao.5ch.net/test/read.cgi/linux/1528141781/

295 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/08(金) 23:23:17.66 .net]
>>283
rubyとかpythonでCSV処理用のライブラリを使うとか、
CSV処理用の専用ツール使うとか。
落とし穴が一杯あるので、シェルだけでやるのは危険。

296 名前:名無しさん@お腹いっぱい。 [2018/06/08(金) 23:24:41.88 .net]
copiezzare.info/

297 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/08(金) 23:31:03.89 .net]
>>285
危険は承知で環境依存させたくないので、
シェルスクリプト(POSIX)だけでやりたいのです



298 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/08(金) 23:35:52.21 .net]
>>287
じゃあ
ttp://wwr2.ucom.ne.jp/tomoo/japana/csv.html
とかどう?

299 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/08(金) 23:57:15.15 .net]
邪道としては、改行コードとか\を絶対に使われない文字に置換して最後にまた戻すとかやったな
アルメニア文字とかに置換するんやで

300 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:06:32.51 .net]
今時、シェルスクリプトが使える環境でperlやpythonがデフォルトで入ってないOSの方が稀だろう。なんかここ最近のPOSIXと言えばいいというようなのはなんかアレだな

301 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:12:49.10 .net]
>>290
busybox、alpine

302 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:14:40.86 .net]
>>291
そういう環境で、CSVファイルの扱いが必要かあ?

303 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:17:26.20 .net]
そんな変わりもんを出されても
>>287がそんなの想定してるとでも思ったの?そんなの想定しているヤツは自力でできるだろうし、そんなの使うやつは必要なら自分で入れるだろう
知識自慢はいらんよw

304 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:21:35.51 .net]
てゆうか問題に適した言語を組み合わせて問題を解くってのが
もともとのUNIXの思想だと思うので、
CSV扱うならCSVに向いた言語使う方がUNIX的だと思うのよね。
まあケースバイケースなんだけど。

305 名前:名無しさん@お腹いっぱい。 [2018/06/09(土) 00:23:20.54 .net]
つまりC++ってことか。

306 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:25:28.50 .net]
https://codezine.jp/article/detail/8323
>gawkの開発は「完全を目指すのではなく9割をサクサクこなし、フィールドに改行を含むようなCSVファイルは専用のツールで処理すれば良い」
ですらだからなあ
Linuxはawk=gawkだが、BSDは巣の(?)awkでgawkは別に入れなければならなく、gawkの機能を使うかどうかっていう話ならわかるけど、そんなんだったらperlやpython使った方がLinuxとBSDの違いも無いだろしな

307 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:34:57.73 .net]
>>287は単に他の言語/知識までは自分の手に余るっていう逃げだろうとしか見えんな
そこに山があるから登るっていうあえてメンドくさいことをしたいってのなら、のらないでもないけどw



308 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:45:11.89 .net]
CSVじゃないって書いてるのに
読めない人多いね

309 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 00:50:25.58 .net]
とは言ってるけど、CSVとはどう違うとかは全くだな。てか、延々とCSVのここがってしかないやん
CSVと似た何か特殊なものなら、普通にストリームの一文字一文字処理できるスクリプト使ったほうがいいだろう、てかそれしかないだろう

310 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 01:21:51.27 .net]
> シェルスクリプト(POSIX)

(;^ω^)

311 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 01:40:22.57 .net]
POSIXはまあいいとしてPOSIXという単語が出る度アレルギーのごとく反発する人はなんなの?
OpenGroupに親でも殺されたのか?

312 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 01:46:42.05 .net]
>>290
だって課題がそうなってるんだもん

313 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 01:53:39.41 .net]
>>301
本当に自身がわかって言っているのかってとこだな。その必要性とか
>>302のような冗談なら笑えるけど

314 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 02:06:03.67 .net]
nkfとかiconvで 改行コードを調べたらええんちゃう?
busybox, alpineぐらいのコンテナに nkf を足したぐらいで大してでかくならんやろうに。

315 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 02:11:54.28 .net]
>>287でposix shellだけで言うてるからダメだよ

316 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 03:14:25.32 .net]
ぽ…POSIX

317 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 03:39:18.86 .net]
今日はみなさん夜更かしですね
まるで自えn(ry



318 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 06:55:43.82 .net]
>>293
お前さんこの間から痛いぞ

319 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 09:19:07.59 .net]
はいはい

320 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 12:31:39.35 .net]
はい、は一回

321 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 13:35:30.76 .net]
はいは一回 と
はいぱー回 ってにてるな

322 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 13:36:18.92 .net]
そうか?

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 16:10:28.91 .net]
ぽしっくすなの?
ぽじっくすなの?
ぽずぃっぐずなの?
なんなの?

324 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 18:01:39.57 .net]
トマトとか言ってる日本人が気にすんな。特定のそういう発音違いをめっちゃ馬鹿にしたりするのも日本人だけど

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 18:02:59.74 .net]
相対するをあいたいするって読んだら漫画の読みすぎだろって馬鹿にされたこと思い出したわ

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 18:45:27.81 .net]
なんのスレやねん

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 19:40:22.27 .net]
ぽちっとな



328 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 23:38:49.68 .net]
質問です。一データの中に改行が含まれた
データを扱うにはどうしたら良いでしょうか?

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/09(土) 23:39:51.65 .net]
改行を置換して読み取る

330 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 00:19:36.87 .net]
1データとは

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 00:30:51.68 .net]
>>318
そういうものはシェルスクリプトでは扱わない
適材適所

バカは同じものをなんにでも押し付けようとするから無駄に機能が肥大化する

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 01:40:53.84 .net]
シェルスクリプトだって適切に扱える(場合はある)
例えば1データがファイル単位に分かれてるとか1データの処理が1プロセスの寿命と同じでいいとか

333 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 02:20:54.22 .net]
U+001EやU+001Fを区切り文字として利用してる方いらっしゃいますか?
結構便利(絶対に他の文字と衝突しない)だと思うんですが、そういうシェルスクリプトを見たことがありません。

334 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 02:29:16.89 .net]
はっはっは。一データの中に改行が含まれてる
ものすら扱えないここの連中にそんな発想ができるやつはいない
その程度の陳腐なアイデアであったとしてもな

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 02:38:52.56 .net]
ここだけのシェルスクリプトだけを言っているわけではないと思うけど

336 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 08:14:53.42 .net]
>>323
正直、そういう解答を出してほしかったね。だせるかなーって思っていたけど
シェルスクリプトでそういうデータを扱うなんておかしいとかのたまうばかり
\x1c(ファイル分離)、\x1d(グループ分離)、\x1e(レコード分離)、\x1f(ユニット分離)は
まさにそういう用途で使うもの。ここの連中の技術力の低下を感じる。

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 09:06:40.68 .net]
見たことがないって言ってんのに、
このスレ住人の話に限定してどうすんだ



338 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 09:26:13.67 .net]
いや>289で答えとるやん
>318ってようは>282の質問し直しでしょ

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 11:02:49.39 .net]
>>327
住民に限定し、しかも馬鹿にしたい欲求を生んだ過去があったのだろう。馬鹿にされたとか、単になにか否定されたとか

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 12:04:18.14 .net]
>>328
それは

341 名前:改行コードを置換するって話
置換することで遅くなってしまう悪いパターン
置換なんかしません
[]
[ここ壊れてます]

342 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 12:18:36.59 .net]
イミフ

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 12:42:33.56 .net]
改行コード含んだデータ扱いたいという前提の質問かと思ったら
改行コード含んだデータなどナンセンスであるという主張だった

344 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 13:18:33.58 .net]
イミフ

データの中に改行コードがあるってだけだろ

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 13:18:58.61 .net]
データの中に改行コードがあっても置換する必要はありませんよねぇ

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 13:19:57.33 .net]
>>289はデータの中に改行コードがあるのはナンセンスだから置換しろという主張
そんなことをする必要はない

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 13:40:18.16 .net]
なんかただ否定している感じにしか見えんけど
シェルスクリプトで扱うまでも考えて否定してんのかな?



348 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 13:41:43.48 .net]
>>289はナンセンス云々でなくて、現実的なだろと思うけど

349 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 14:38:11.53 .net]
>>337
動くかどうかだったら動くけど
速度が遅過ぎで現実的じゃないよ
なにせ一行一行forkとプロセス起動が必要になるしね

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 15:07:33.90 .net]
速度が問題になるかは条件次第で
現実的じゃないと言いきれる根拠は今のところ無い

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 15:18:07.55 .net]
>>338
> なにせ一行一行forkとプロセス起動が必要になるしね
イミフ

352 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 15:18:34.26 .net]
>>326
だってどうせCSVの話だろ?区切り文字を換える話をすると
後出しじゃんけんでソレは違うって言い出すのが常套手段

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 15:46:39.73 .net]
一度全部置換してから読み取ればいいんじゃないですか(名推理

354 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 15:59:54.35 .net]
因みにCSVはRFCで「内部改行はCRLF」と定まっているので
ここから攻めるというのもアリ。
「\r\n」という組はフィールド区切りとしては無効にすればよろし
え? CSV出力すると内部改行がLFになるLibreOffice Calc?
知らない子ですね…

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:03:53.76 .net]
>>340
まったく
どういう処理を想定しているのか全くみえんな。そのなアホなという処理方法は

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:07:14.39 .net]
> "Excelから出力したCSVのように" 一行(?)の中に改行が含まれた
> データを扱うにはどうしたら良いでしょうか?

> カンマ区切りのCSVデータだと "仮定して" 、

> 今回はCSVではありませんが、


こう書いてあるのに、CSV形式だって思い込むのは
頭が悪いと思います。

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:07:56.46 .net]
>>343
> 因みにCSVはRFCで「内部改行はCRLF」と定まっているので

なるほど、\n のようにエスケープしてはいけないんですね



358 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:10:01.41 .net]
だったらお前がそのわけわからんCVS形式でない答えを応えれtばええんちゃんですかね?具体的に何も言ってないのに対する汎用的な
自称賢いらしいから時間かけずになんでもござれの汎用的的なのかけるだろ?

359 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:10:06.96 .net]
>>345
だったら好きにすれば?

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:10:50.12 .net]
>>343
> 一度全部置換してから読み取ればいいんじゃないですか(名推理

そして一行ずつ読み取るわけですねw

そりゃそうでしょう。\nを全部改行コードに戻してしてしまったら、
区別できないですからね

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:11:08.39 .net]
>>345
既にCSVをどうするのかという話題に変わってるんですよ。
空気読んでくださいよ。

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:11:30.84 .net]
>>346>>345っぽいけど、そうなら他人を頭が悪いとは言えんだろうw

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:12:08.78 .net]
>>347
> だったらお前がそのわけわからんCVS形式でない答えを応えれtばええんちゃんですかね

データの中に改行コードがあるってだけで、
フォーマットは最初から指定してないよ?

その場合どういうやり方があるでしょうって話なんだが、
CSVだと思いこんで効率の悪い方法しか思いつかず
指摘したら逆ギレするのやめなよ?ダサいから

364 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:12:51.65 .net]
>>338
MINIX でも使ってるの?

365 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:13:10.06 .net]
>>351
なにが言いたいのかわからんが、RFCのCSVの仕様に改行コードを
エスケープするという仕様はない。ダブルクォートでくくればいいだけ

366 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:13:34.23 .net]
>>353
へー、MINIXも遅いんですねー

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:14:28.24 .net]
えっ、



368 名前:一行づつ fork + exec してるって本気で思い込んでるんだ… []
[ここ壊れてます]

369 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:16:58.31 .net]
>>352,354
...はあ...
マジで言ってるの?

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:22:35.88 .net]
>>356
外部コマンドを呼び出すならそうだね
まさか外部コマンドを呼び出さないで置換できるとでも思ってのかい?w

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:23:33.86 .net]
データ | フィルタ | シェルスクリプト(関数なり) | フィルタ > データ
フィルタをどう作るかは具体的じゃないとでCVSしか例にあげてないからCVSなだけなんだが
っていういたって普通のことなのに。そうじゃないナニかを想定しているらしけど、そのナニかの具体的なことは全く言わずに指摘wという否定なだけだもんな
その指摘もトンチンカンなこともあり、ただただ無闇に偉ぶりたいだけにしか見えんなあ

372 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:24:15.94 .net]
>>357
仕様よんでこい

www.kasai.fm/wiki/rfc4180jp

CSVの仕様においてエスケープとは
ダブルクォート " を "" と二つ連続させるものだ
\記号でエスケープする仕様はない

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:25:32.32 .net]
>>360
それは最初&最終形態だよ。途中で処理の都合のよいようにするのに仕様もなんもないわっ
マジあほとしか思えない

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:26:22.60 .net]
もう一つ解説記事

https://codezine.jp/article/detail/2364

>  改行コードはプラットフォームによって異なります。一般的にWindowsは
> <CR><LF>、UNIXは<LF>です。

>  ※2008/04/16追記:RFCでは末尾(レコードの区切りとして)の改行は
> <CR><LF>を推奨しています。CSVを解釈するプログラムではどちらの
> 改行コードでも読めるように作ることをお勧めします

> ダブルクォートで囲む場合
> "山田","太郎","値に
> 改行や,カンマや""ダブルクォートが含まれても問題ありません。"

> まれにCSVの方言で\エスケープを行うことがあります。
>
>\エスケープを行う特殊な例
>"山田","太郎","値に改行\nや\,カンマや\"ダブルクォートが含まれても問題ありません。"
> この方言はあまり普及していませんので、利用するのは避けましょう。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:26:49.29 .net]
>>361
最終形態とか何いってんだ?
RFCの仕様の話をしている

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:27:48.82 .net]
>>363
シェルスクリプトでどう扱うかだぞ?処理をどうするかだぞ?なに言ってるの?プログラミング知らないの?

377 名前:名無しさん@お腹いっぱい。 [2018/06/10(日) 16:28:23.86 .net]
CSVスレになってんのはなぜなんだ
勉強にはなるけど



378 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:28:48.64 .net]
もう一つw
https://www.upken.jp/kb/csv.html

> RFC4180準拠
>  基本
>  ヘッダーはあってもなくてもよい
>  空データフィールドがある
>  前後にスペースがあっても無視しない
>  ダブルクォーテーションで囲む場合は同じレコードのすべてのフィールドをダブルクォーテーションで囲む
>  改行、ダブルクォーテーション、カンマを含むフィールドは、ダブルクォーテーションで囲むべき
>  ダブルクォーテーションで囲まれているフィールドでダブルクォーテーションを使用する場合は、ダブルクォーテーションでエスケープする
>  

379 名前:非常に長い文字列を考慮
>  複合パターン
[]
[ここ壊れてます]

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:29:45.29 .net]
>>364
> シェルスクリプトでどう扱うかだぞ?

CSVを扱うという話はしてない
\ でエスケープするのは遅くて無駄という話ならしたがね

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:31:47.04 .net]
>>367
お前はどうかしてる。ここにきてCVSの仕様を得意げにあげてるのと同じヤツってことはないよな?

382 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:34:02.42 .net]
>>358
左手でつり革に捕まっていても、左手で痴漢できるそうですよ
日本の裁判所は素晴らしいです

383 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:35:15.34 .net]
>>368
どうかしてるって言うなら、答えを書きなよ
なんど言われれば分かるんだ?

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:36:40.96 .net]
>>368
CSVの仕様を得意げにーっていうのは

> 因みにCSVはRFCで「内部改行はCRLF」と定まっているので
↑こいつのことですかな?w

まあ、RFCでCRLFと決まってないんですがw

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:36:59.71 .net]
>>370
答えって...だいたい想像できるだろう。めんどくさいだけで
お前のやり方がわからんわ。指摘するお前が出せよw

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:39:16.71 .net]
>>372
「だいたい」しか「想像」出来てないのに偉そうだなおい
かけないんだろう?だから人にいちゃもんつけるだけなんだろ
いい加減ごめんなさいって言った方がいいぞ?

387 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:39:21.31 .net]
1データの中に改行が含まれてる
そのままだとデータ区切りの改行と見分けがつかない
CSV形式の話はしていない

\nにエスケープする方法では、1データずつ処理しなければならず
外部コマンド呼び出しの必要があるから遅い

ここまでは理解できてんのかなー?



388 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:39:51.59 .net]
>>371
いや、お前のこと。たぶん
それは単に利用できそうなキーポイントでそれを利用してって話でしかないな
たぶん、お前だろうが、得意げには仕様が絶対でどうであれ利用しちゃダメっていう変なヤツ

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2018/06/10(日) 16:40:34.63 .net]
>>375
俺は最初からCSV形式のデータを扱う話なんかしてないんですが?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef