- シェルスクリプト総合 その32
417 :デフォルトの名無しさん[sage]:2020/01/25(土) 17:35:52.15 ID:2I6NhO3j - index=2,INFO1="abc",INFO2="ab,c"
↑こういう風に 「カンマ区切りで値が並んでて、区切り文字ではないカンマは引用符で囲まれてる」 みたいなデータに対して、 シェルスクリプトでINFO2やらindexやらの値を取得したいんだけどどういう方法がいいですかね。 IFSをカンマにする方法では引用符で囲まれてるカンマも区切りと見做されちゃうし… シェルって""←の中を特別に扱う筈だから、evalとか使えば効率的に処理できそうなんだけど、 思い付かん…
|
- シェルスクリプト総合 その32
422 :デフォルトの名無しさん[sage]:2020/01/25(土) 20:29:47.31 ID:2I6NhO3j - >>418
CSV形式の一種なのかな。 ただ改行はなくて、常に一行。 あと引用符はあったりなかったりする。 具体的には、m3u8プレイリストの一部を処理したいのよね。
|
- シェルスクリプト総合 その32
424 :デフォルトの名無しさん[sage]:2020/01/25(土) 20:48:15.05 ID:2I6NhO3j - 超具体的に言うと(てかここまで直接に状況を晒すとクレクレみたくなるなw)
“playlist.m3u8”っていうファイルだとして ↑こういう形式の行が沢山あるんだけど、 ここのRESOLUTIONの値と対応するMOVIE-URIの値をずらずら欲しい。 IFSを変える方法だとやっぱり引用符に関係なく「,」で区切られちゃうのよね while read l; do IFS=','; for s in "$l"; do echo "$s" done done < ./playlist.m3u8
|
- シェルスクリプト総合 その32
425 :デフォルトの名無しさん[sage]:2020/01/25(土) 20:49:51.89 ID:2I6NhO3j - >>423
自分で生成するんだったら区切り文字は絶対に 他の文字と被らないようにするんだけどね……
|
- シェルスクリプト総合 その32
427 :デフォルトの名無しさん[sage]:2020/01/25(土) 22:38:09.23 ID:2I6NhO3j - >>426
それだと引用符の中のカンマまで変換されちゃうのよね。 まあ、もう簡単に処理する方法はあきらめて AWKやらでガシガシ解析するしかないw
|