トップページ > プログラム > 2020年01月25日 > 2I6NhO3j

書き込み順位&時間帯一覧

6 位/151 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000010030105



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
シェルスクリプト総合 その32

書き込みレス一覧

シェルスクリプト総合 その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


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。