X



トップページLinux
1002コメント311KB
デスクトップでLinuxが普及する訳ないと思った時 11
■ このスレッドは過去ログ倉庫に格納されています
0652login:Penguin
垢版 |
2019/04/14(日) 00:04:46.81ID:sSM/KrIQ
awkなんかで処理しようとすると死ぬ
0653login:Penguin
垢版 |
2019/04/14(日) 00:11:12.21ID:kg8pvW5X
三列と決めてるのは>>638だからなぁ。
0654login:Penguin
垢版 |
2019/04/14(日) 00:13:49.22ID:kg8pvW5X
三列のcsvなのに四列目の000"が存在しているのが間違いだな。
0655login:Penguin
垢版 |
2019/04/14(日) 00:14:46.27ID:sSM/KrIQ
それはCSVの仕様(RFC4180)です。
0656login:Penguin
垢版 |
2019/04/14(日) 00:24:22.36ID:kg8pvW5X
7. フィールドがダブルクォーテーションで囲まれている場合、フィールドの値に含まれるダブルクォーテーションは、
その直前にひとつダブルクォーテーションを付加して、エスケープしなければならない。

よく知らないけどこの辺ですか?
0658login:Penguin
垢版 |
2019/04/14(日) 00:33:06.47ID:kg8pvW5X
はみ出たやつは手作業で…。
0659旅人びとうさぎ
垢版 |
2019/04/14(日) 00:48:27.74ID:THpTYFU9
ただのウサギなんですが、0埋め
もしくは、-埋めではダメなんですか?
0660login:Penguin
垢版 |
2019/04/14(日) 01:01:13.83ID:kg8pvW5X
sed -n "/[^,]*,[^,]*,[^,]*,[^,]*/p"
とか…。
0661login:Penguin
垢版 |
2019/04/14(日) 02:54:53.89ID:FNHMy2Rc
awkも結局シェルのプロセス外のシーケンサーの一種だけどな

で、デスクトップと何の関係が?
0662login:Penguin
垢版 |
2019/04/14(日) 02:59:54.75ID:kg8pvW5X
256文字すべてを含むフィールドが存在できる以上
セパレータ文字をエスケープする文字の存在は不可能?
0663login:Penguin
垢版 |
2019/04/14(日) 03:20:41.34ID:kg8pvW5X
"エスケープ文字" "セパレータ文字" の並びがデータだと言われたらダメだな。
0664login:Penguin
垢版 |
2019/04/14(日) 03:32:34.97ID:kg8pvW5X
長く複雑なセパレータ文字列を使えば確率は下がるかもしれない。
0666login:Penguin
垢版 |
2019/04/14(日) 07:36:09.29ID:KEQ0Qh2C
デスクトップとして普及しないのはスレタイと関係ない事を延々とレスする基地外が跋扈する世界だからさ。
0667login:Penguin
垢版 |
2019/04/14(日) 07:52:57.60ID:kg8pvW5X
よくわからないけどこんなものが出来ました。
cat data.csv | sed 's%.*,"\([^",]*,[^",]*\)".*%"\1"%g' | grep '"[^"]*"'
0668login:Penguin
垢版 |
2019/04/14(日) 09:21:49.40ID:kg8pvW5X
長く複雑なセパレータ文字列案
"いやがらせすんな"
0669login:Penguin
垢版 |
2019/04/14(日) 09:23:58.72ID:kg8pvW5X
>>638
結局これをどうすればいいの?
0670login:Penguin
垢版 |
2019/04/14(日) 09:28:55.80ID:kg8pvW5X
ああ>>651か…。
0671login:Penguin
垢版 |
2019/04/14(日) 09:31:57.00ID:kg8pvW5X
>>651
三行目と四行目はいらないのかね?
全ての項目にはならないけど?
0672login:Penguin
垢版 |
2019/04/14(日) 09:59:35.19ID:kg8pvW5X
設問の不備ですかねぇ、出題者様ぁ。

まぁ、>>638をデータとしてそのまま使うのはあまりおすすめしませんねぇ。
修正してから加工したほうがよろしいんじゃないですか、お客さん。
0673login:Penguin
垢版 |
2019/04/14(日) 10:33:50.50ID:kg8pvW5X
教育関係者かね?
既知の問題だと思うけど、そいつらの相手はただの知恵比べでつまらんよ。
教室のテストじゃないからググるというカンニングでてきそう。
まぁ、>>638の時点でどうしてほしいか書いてない時点で間抜け確定なんだよ。
そんなやつの相手をしても無駄といえば無駄だったな。
教育関係者のアホなところはなんとしてでも生徒より上に立とうとすることだろうな。
そんな無駄な努力をするより未知の問題に立ち向かう姿勢を見せた方が生徒に慕われると思うよ。
0674login:Penguin
垢版 |
2019/04/14(日) 10:37:38.96ID:kg8pvW5X
俺もcsvはほとんど知らなかったからなぁ、
いい勉強にはなったかもしれんが

csvを使って何かするということはこの先ほとんど無いだろうな。
アホな教育者のマウントに付き合わされるだけか…。
0675login:Penguin
垢版 |
2019/04/14(日) 10:56:24.45ID:Oyg1mkTz
  σ < 教師は、制度上、未熟だから学びに来ている生徒に囲まれている
 (V)    1学科に特化して毎日対峙しているのだから
  ||     新しく学ぶことでは、当然、未熟な生徒など簡単に捻れる
       だから、増長しやすい
       それなのに上に立とうとうろたえる程度だったら
       そりゃ悲惨な現実が展開することになるな、ワワワワワ
0676login:Penguin
垢版 |
2019/04/14(日) 11:09:21.49ID:kg8pvW5X
無駄な努力で無駄な知識を得させる、
我が国のリソースを食いつぶすのはやめてくれ。
0677login:Penguin
垢版 |
2019/04/14(日) 11:10:49.78ID:kg8pvW5X
ここで問題です、

学校は必要かどうか?
0678login:Penguin
垢版 |
2019/04/14(日) 11:24:52.90ID:kg8pvW5X
第二問
最適なcsvのセパレータは?
0679login:Penguin
垢版 |
2019/04/14(日) 12:47:49.85ID:Oyg1mkTz
  σ < 用途に最適化したフィルターを用意し
 (V)    用途に合うセパレーターを採用すればよい
  ||     しかし、エスケープシーケンスは必要になってくるだろう
       フィルターを記述するのはお好みの言語でどうぞ
       Linuxは良い練習台になります
0680login:Penguin
垢版 |
2019/04/14(日) 13:41:20.55ID:KEQ0Qh2C
comma-separated values
のファイルに「最適なセパレータは?」とか言われてもな。
0681login:Penguin
垢版 |
2019/04/14(日) 13:56:16.29ID:Oyg1mkTz
  σ < ワロタ
 (V)    目的に合うデーター形式のテキストを選べばよいだけ
  ||
0682login:Penguin
垢版 |
2019/04/14(日) 14:00:05.57ID:sSM/KrIQ
>>673
なに一人で空回りしてんのさw

なにかしてほしいんじゃねーよ。
CSVなんて簡単なんて抜かしてるから、CSVを編集するなら
専用のツールを使わないとだめってことを指摘しただけだ。

世の中のCSVなんて、エクセルからの出力ばかりなんだから
シェルスクリプトやawkで簡単だぜーとか言ってると痛い目を見るぞ。
0683login:Penguin
垢版 |
2019/04/14(日) 14:02:02.77ID:OMecn1y2
もうMDBファイルでいいよ。
0685login:Penguin
垢版 |
2019/04/14(日) 14:57:12.66ID:TGWNcCG2
>>678
>>638 は真っ当な CSV 形式で、セパレータは , です。
, や改行を含めた場合、"" で囲まれます。改行も1つのデータなので削ってはいけません。
0686login:Penguin
垢版 |
2019/04/14(日) 15:26:49.31ID:FNHMy2Rc
ところがPowerShellはcsv如き外のプロセスに頼らずに処理できる、と
0687login:Penguin
垢版 |
2019/04/14(日) 15:37:32.89ID:FNHMy2Rc
あー、コマンドレットとかそんな話じゃないからな
https://www.aruse.net/entry/2018/09/08/162030
あんなもんすぐ限界が来るから直接TextFieldParserの類を使った方がいい

そもそもcsv如きPowerShellなら自前のパーサで処理したとこで大した負担にもならんだろうが
StreamReader辺りで1行づつ読んで"の囲いとエスケープを処理しながら"の範囲外の,で分割して
テーブルで返す、なんてその辺に無駄に転がりまくってて自前で書いても何の自慢にもならん
0690login:Penguin
垢版 |
2019/04/14(日) 17:27:34.58ID:mbyB72Ft
>>689

木下よ

話に加わりたくて必死だなw
0691login:Penguin
垢版 |
2019/04/14(日) 17:31:57.05ID:kg8pvW5X
>>682
設問の不備は?

以下のようにしてみてって書いてるやろ。
0692login:Penguin
垢版 |
2019/04/14(日) 17:37:16.04ID:kg8pvW5X
まぁ、お前の部下でも生徒でもないんで義務はないけどな。
0693login:Penguin
垢版 |
2019/04/14(日) 17:51:00.46ID:kg8pvW5X
ああそういうことか…。
0694login:Penguin
垢版 |
2019/04/14(日) 17:53:49.76ID:kg8pvW5X
わざわざそんな項目にするのはただの間抜けだな。
0695login:Penguin
垢版 |
2019/04/14(日) 17:55:18.95ID:kg8pvW5X
改行を含めるとかセパレート文字使うとかアホとしか思えんよ。
0696login:Penguin
垢版 |
2019/04/14(日) 17:57:26.09ID:kg8pvW5X
で、それに真面目に対応するMSはすごいけど
間抜けなデータの処理自慢するとか…。
0697login:Penguin
垢版 |
2019/04/14(日) 18:06:10.95ID:utjIHXLX
これがおいらの正体ですwww
得意技は荒らしです


  σ < おいら荒らしですwww ほんとテーノーですwwwww               
 (V)
  ||  http://warotateno.web.fc2.com/warotawarota.html
0698login:Penguin
垢版 |
2019/04/14(日) 18:11:45.58ID:Uoa9FR4r
>>688
2枚目の上の方にあるアイコンってなに?
0699login:Penguin
垢版 |
2019/04/14(日) 18:27:20.98ID:kg8pvW5X
理論上使えるけどほんとにそれ使ってそれは便利なの?
ってもん実際に使ってるの?
データを扱うファイル形式としての性格上改行文字含めるとか…。
もしエスケープ使ってでも使ってしまっている場合やはり出来うる限り修正すべきだろう。

長い注釈とか想定してるのかね?
0700login:Penguin
垢版 |
2019/04/14(日) 18:37:27.56ID:kg8pvW5X
ふーん。
0701login:Penguin
垢版 |
2019/04/14(日) 21:09:54.52ID:7VdhBezH
>>620
Bashでしかできないシェルスクリプトまだなの?
能無しのクズ
0702login:Penguin
垢版 |
2019/04/14(日) 22:00:02.78ID:w8aayK7s
bashでしか出来ないスクリプトってshebangを/bin/bashから/bin/shに変更すると動かなくスクリプトでいいの?
bashで拡張された構文で書けばいいと思うけど。
0703login:Penguin
垢版 |
2019/04/14(日) 22:01:42.48ID:ixpIiuEv
それができてないからな…
0704login:Penguin
垢版 |
2019/04/14(日) 22:03:30.71ID:w8aayK7s
>>699
csvで改行付き文字列ってだけで使うでしょ。
0706login:Penguin
垢版 |
2019/04/14(日) 22:22:51.61ID:kg8pvW5X
cat data.csv | tr "\n" "#" | sed -e 's%,%@,%g' -e 's%#%@#%g' -e 's%"@%@"%g' -e 's%\([^"]"[^"]*\)@,\(.*\)%\1,\2%g' | tr "#" "\n" | sed '/,/! s%@%%'

条件は一応クリアだけどねぇ…。
0707login:Penguin
垢版 |
2019/04/14(日) 22:24:33.75ID:w8aayK7s
#!/bin/bash
str='hogefuga'
if [[ $str =~ fuga ]] ;
then
echo 'attayo'
fi

とか/bin/shとかだと動かんと思うけど。
0708login:Penguin
垢版 |
2019/04/14(日) 22:25:04.19ID:kg8pvW5X
目の前のブツはどうにかした程度なんで…。
0709login:Penguin
垢版 |
2019/04/14(日) 22:30:33.28ID:kg8pvW5X
[[: not found
0710login:Penguin
垢版 |
2019/04/14(日) 22:34:41.61ID:w8aayK7s
あらま。残念。
0711login:Penguin
垢版 |
2019/04/14(日) 23:06:03.02ID:sSM/KrIQ
>>702
> bashでしか出来ないスクリプトってshebangを/bin/bashから/bin/shに変更すると動かなくスクリプトでいいの?

普通に考えれば、bash以外だと出来ない or 困難だけど、
bashなら簡単にできるって意味だろw
0712login:Penguin
垢版 |
2019/04/14(日) 23:26:47.34ID:LI0gZTLA
やっぱり無いのか
0713login:Penguin
垢版 |
2019/04/14(日) 23:55:06.85ID:kg8pvW5X
あれってシバンって言うの?
昔は意味も知らず馬鹿正直に#!/bin/shとか書いてたけどね。
最近面倒だからなにも書かない。
0714login:Penguin
垢版 |
2019/04/15(月) 00:13:41.35ID:bt0Hu5HW
  σ < >>698 アプリケーションウィンドウ常駐するランチャーシステムです
 (V)    フォーカスがアプリケーションウィンドウ上にない場合は
  ||     デスクトップの指定の位置に移動する
0716login:Penguin
垢版 |
2019/04/15(月) 08:00:08.04ID:h+eVLrU/
>>706
よくわからんがdata.csvの中に#や@は含まれない条件って事?
0718login:Penguin
垢版 |
2019/04/15(月) 08:31:39.32ID:+9WNK8bf
>>713
書かないと動かないことあるよ
0719login:Penguin
垢版 |
2019/04/15(月) 10:25:14.91ID:/mNunEvK
>>716
そう
汎用性はない。
@は挿入する文字だから。
#は入れ替えれば動くと思うが
複数の,とか\nと,が""内に同居してるとまずいと思う。
テストはまだしてません。

>>718
マジ?
0720login:Penguin
垢版 |
2019/04/15(月) 11:28:19.64ID:rmrtQXBC
  σ < #!/bin/sh
 (V)    Linux Mint 64bit版では無しで動いた
  ||     MX Linux 64bit版では、無しでは動かなかった
       最近の検証結果
0721login:Penguin
垢版 |
2019/04/15(月) 12:45:59.26ID:/mNunEvK
a,A,1
"b",B,"2,000,000"
"c
,c
c",C,3

ボロボロやなぁ…。
0722login:Penguin
垢版 |
2019/04/15(月) 14:22:05.48ID:qKFhxdiL
自作のツールでログ吐かせるとか、特定用途のデータファイルにCSV形式つかうことはあるけど、LibreなりOfficeなりでExcelの2003形式が基本だな、俺は。
CSVのままだとちゃんと理解してくれないアプリが多すぎる。

いろいろあったんだけど、決定打になったのがOutlookのアドレス帳をCSV形式でエクスポートして、別のPCの同じバージョンのOutlookで読んだら改行ありのデータがきちんとインポートできなかった時。
鬱憤というか、それまで積もってきた不満があふれて「こりゃだめだ」って見捨てたw
0723login:Penguin
垢版 |
2019/04/15(月) 14:48:22.66ID:afZJHIan
Windowsは、もうじき無くなるから準備しといた
方が良いよ。もうそんなに、時間のこってないよ。
0724login:Penguin
垢版 |
2019/04/15(月) 14:48:54.97ID:afZJHIan
>>674
それほどのこと?
0725login:Penguin
垢版 |
2019/04/15(月) 14:50:15.45ID:afZJHIan
>>682
騒ぐほどのこと?
Awk でちょいちょいじゃん
0726login:Penguin
垢版 |
2019/04/15(月) 14:51:08.80ID:afZJHIan
>>688
だっさ
0727login:Penguin
垢版 |
2019/04/15(月) 14:55:12.18ID:afZJHIan
シェルスクリプトとかawkのコードの移植性を
あまり考えなくなったなあ。これじゃいかんのだが
だって、他の処理系、開発止まっちゃってるんだもん
わざわざ、便利な機能を使わない意味がもはや
見当たらないよ。
0728login:Penguin
垢版 |
2019/04/15(月) 14:58:37.69ID:afZJHIan
ところで、デスクトップ
どこ行ったんだろ?
まあ、別に普通に使えるけど
0729login:Penguin
垢版 |
2019/04/15(月) 15:00:49.46ID:afZJHIan
>>689
vifm,mcの方が良いよ
見た目が良いよ
こりゃ古すぎ
0730login:Penguin
垢版 |
2019/04/15(月) 15:08:17.54ID:/mNunEvK
>>724
ログに毛の生えたようなものだと思っていたんだよ。
0731login:Penguin
垢版 |
2019/04/15(月) 15:31:49.88ID:qKFhxdiL
>>723
とっくにoutlook.com経由でAndroid端末に全部移行できてるから問題ないよ。
googleとoutlookと携帯キャリアの3か所にアドレス帳のバックアップがある状態。

ところで、Windowsが終わるとか、Linuxが流行るとか、20年ぐらい前からずーっと言われてるような気がするのは気のせいか?
0736login:Penguin
垢版 |
2019/04/15(月) 17:16:39.27ID:/mNunEvK
改行を含むものは出来ないっぽいな。
まぁ改行を含むcsvファイルがどれだけの割合で存在するかだなぁ、
でも未対応と言われればやはり使いづらくなるな。
0737login:Penguin
垢版 |
2019/04/15(月) 18:33:15.38ID:/mNunEvK
そういった細かいことにこだわっていても前には進めんということか…。
0738login:Penguin
垢版 |
2019/04/15(月) 19:38:21.57ID:ci3QovAt
デスクトップLinuxとかけまして

横浜駅と解きます。 その心は
0739login:Penguin
垢版 |
2019/04/15(月) 19:48:34.60ID:AXq3RwEb
>>723
> Windowsは、もうじき無くなるから準備しといた
> 方が良いよ。

だな。1000年後の未来に行って子孫に
Windowsはもうじき無くなるぞーって言ってくるわ。
0740login:Penguin
垢版 |
2019/04/15(月) 20:20:57.71ID:J7iQ4IZA
>>738
いつまでたっても未完成。
0741login:Penguin
垢版 |
2019/04/15(月) 23:31:13.94ID:tyeXqyex
お前らは何にもわかっちゃらない!
少しはデニス・M・リッチーを見倣え!
0742login:Penguin
垢版 |
2019/04/16(火) 00:41:53.61ID:k0OQ0Xyu
"2,000",bbb,"3,000,000",aaa

cat data.csv | sed 's%"%\n%g' | sed '/^$/d' | sed 's%^,%%' | sed 's%,$%%' | sed 's/$/@/' | sed '/,/ s/^/"/' | sed '/,/ s/$/"/' | tr "\n" "," | sed s'%,$%\n%'

一行だけなんだけどささやかな抵抗をしてみました。
0743login:Penguin
垢版 |
2019/04/16(火) 02:58:01.69ID:Q6a0rJOg
他人がレビュー(書くよりも短い時間で問題ないと判断できること)出来ないコードを書くな
0744login:Penguin
垢版 |
2019/04/16(火) 03:07:15.93ID:ZoqvFaLs
デスクトップと何の関係も無いし
そもそもPowerShellなら可読性の高いコードをスクリプトに埋め込んでスクリプトだけで完結するし
0745login:Penguin
垢版 |
2019/04/16(火) 06:05:23.60ID:p1u+CqMN
Ruby では、改行コードなどの特殊文字も、"〜" 内に書けば、エラーにならない

require 'csv'

str = <<"EOT"
id,first name
1,abc
2,"xy\nz"
EOT

options = { :headers => true }

CSV.parse( str, options ).each do | row |
p [ row[ 'id' ], row[ 'first name' ] ]
end

出力
["1", "abc"]
["2", "xy\nz"]
0748login:Penguin
垢版 |
2019/04/16(火) 07:40:09.91ID:ZoqvFaLs
rubyのソースだけで云々ってんならもはやWinもLinuxもデスクトップも関係ねえw
0749login:Penguin
垢版 |
2019/04/16(火) 07:51:22.81ID:4x6k3Hqu
そもそもwinも関係ないよ。
0751login:Penguin
垢版 |
2019/04/16(火) 08:18:20.11ID:4S0LnVPj
Rubyって1.8とか1.9ぐらいのころに手を出したことあるけど
実装がリファレンス
とか言われて仕事で使うもんじゃないなと思ったことある。
今でも実装がリファレンスなのかな?
■ このスレッドは過去ログ倉庫に格納されています

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