デスクトップでLinuxが普及する訳ないと思った時 11
■ このスレッドは過去ログ倉庫に格納されています
シェルスクリプト?
最近仕事で作った奴は指定した通信機器に遠隔ログインしてexpect使ってコマンド実行してコンフィグ修正したりするような奴つくって動かしてるよ。
psとかでもexpectみたいな奴あるなら教えて欲しいよ。teratermマクロはウンザリなんで。 >>601
> psとかでもexpectみたいな奴あるなら教えて欲しいよ。teratermマクロはウンザリなんで。
? expectはbashじゃなくて、外部プログラムだろ?
ならpsから外部プログラム、つまりexpect呼べばいいだけじゃん
シェルがなにかわかってるの? bashとしてのシェルってのは見たことないなw
草生やしとくわ > bashとしてのシェルってのは見たことないなw
意味がわからんね。
要するにシェルスクリプトプログラミングの話だろ? >>597はただ外部コマンドを呼び出してるだけだから
bash便利ーって感じはしない 特定のランタイム、言語に依存せずにオブジェクトの受け渡しが簡単にできるインターフェイスを持ったシェルなら無条件で神(そんなのは存在しないが)
じゃなきゃ、LL系の対話シェルと変わんない
MSはバカを騙すのがホントうめーわ オブジェクトの受け渡しが簡単にできるほうができないよりマシじゃん。 >>603
シェルのビルトインコマンドだけじゃなければシェルスクリプトとは言えないと思っているの?
なんか面倒くさくなってきた。説明するの面倒なんでもういいや。 ブラックホールの画像を撮ったチームの
ドキュメンタリーをBSプレミアムで見た
どっかの学者のノートPCがちらりと映ったら
明らかにUbuntuのunityだったね
まあバカが寄ってたかって
Linuxデスクトップの
悪口を並べたところで
あの学者の知性を考えたら
虚しいだけだよな
成仏しろ 知性と品性ってかならずしも両立しないんだよな。
粗野で卑な性格のLinuxユーザが多いのがよくわかってしまうね。 あの学者とやらにに知性はあるかもしれないが、犬厨は知性を持たないPC業界の中二病患者だぞw 内部か外部かを気にしてスクリプト書いたこと無いけどね。 プロセス生成のオーバーヘッドは無視できないくらい大きいぞ。 >>611
× シェルのビルトインコマンドだけじゃなければシェルスクリプトとは言えない
○ 外部コマンド呼び出しだけじゃシェルスクリプトとは言えない
シェルのビルトインコマンでも、シェルスクリプトの文法でもいいから
外部コマンド呼び出し "以外" をしろってこと
外部コマンド呼び出し "だけ" ならバッチファイルと変わらん #!/bin/bash
echo "hello world" >>611
無論シェルスクリプトでシェル変数セットしてexpectのtclで読んでる。
ループ制御とかログの出力expect実行結果判断なんかはshの方が便利だし。
シェルスクリプトから一行でexpect起動してるならシェルスクリプトにする必要ないと俺も思うよ。
で、ps使いの人に聞きたいのだがエクセルファイル読み込んでオブジェクトにしてpsスクリプト内でセル読み書きとかプロパティ変更してエクセルファイルに書き出す事とか出来る? こうやって見ると、PowerShellはプログラミング言語だな
PowerShell で Excel をどうのこうのすることに興味を持ってくれると嬉しい
https://qiita.com/miyamiya/items/161372111b68bad0744a シェルスクリプト(バッチファイル)でcsvを弄うほうがそれっぽい。 >>622
ありがとう。だいたいわかったよ。saveasがあるならloadもありそうだし。 てかPowerShellってシェルのパチモンに
COMのインスタンスの生成とそのアクセスの提供とGCを積んだだけみたいなもんでしょ
.NETってライブラリ群としての規模は相当でかいけど、構造自体は単純だぞ
COMかじってればC++でなんちゃって.NETライクな動作をするアプリを自作できるだろ
それを言語レベルにまで食い込ませたのがC++/CLI (ry それをコンパイラ使わずにスクリプトでやれることに意味があるんじゃないか 意味の有無に言及したつもりはなくって、プログラミング言語に見えなくもない理由について語っただけ
csvの読み書きとかshからperl起動しなくってもMicrosoft.VisualBasic.FileIOの中の
TextFieldParserとか使えば一発だしな
そもそもFormも使えるからシェルからPython起動してウィンドウのサブルーチンっぽく
ダイアログの入力結果を云々して戻り値をシェルで判定、なんて事をしなくても済むし
PowerShellのそういうとこはそれはそれで有用だよな ああ、そうだね。
windowsで使われる全てのオブジェクトがpsからアクセスできるなら素晴らしいね。 >>625
> .NETってライブラリ群としての規模は相当でかいけど、構造自体は単純だぞ
素晴らしいことだな。単純な構造で、大きな事ができるって。 >>629
特殊な引数とかの受け取りを要求してくる様なイベントハンドラが必須とかでもない限り、
インスタンスは何でも作れるし実行環境を限定する様なのでもなきゃ何でも動くよ
一度やった事があるけど、HttpListenerまで実装できて(動いて)笑った事がある
>>630
思ったんだけど、bashとかもやろうと思えばできるよな
そういう動きないんかね?PowerShell coreで先越されてるし意味ないか? >>631
.netでできる事ならpsでも効率云々を度外視すれば同じ事が出来るって事だね。httplistenerとかテスト用なら十分そうだし。 cat data.csv | awk -F ',' -v 'OFS=,' '{print $2,$1}' >>636
a,A,1
b,B,"2,000"
"c
c
c",C,3
3行のCSV >>638
五行ぐらいなら手で修正せえよ。
2,000は2000でもええのか2,000でなければならんのかによっても違うし、セパレータ変更してもええのかダメなのかにもよるし…。
cは何列目に置くのかにもよるし…。 とりあえずsedかなんかで"を消して、
あとはずれたところを手作業かなぁ。 無理に一般化するのは出来ないことは無いかもしれんが無駄だろうな。
ただ手作業の手間を減らすことはできると思う。 "消したらあかんのか…。
2,000の"は消さなあかんようやけど
"2と000"と言うデータなのか2000でええのか2,000でなければならないのか? まぁスクリプト通したいなら先に修正したほうがええね。 壊れていないとすれば
"c,,こうか,"c,か,,"cこうじゃないのか。 >>636に通した結果ですけど
A,a
B,b
,"c
,c
C,c" cat data.csv | awk -F ',' -v 'OFS=,' '{print $3,$2,$1}'
でこうなりました。
1,A,a
"2,B,b
,,"c
,,c
3 ,C,c" CSVは複雑な形式だから、awkなんかで処理しようと死ぬ
>>645
そうだね。全ての項目の後ろに@でもつけて以下のようにしてみて。
a@,A@,1@
b@,B@,"2,000@"
"c
c
c@",C@,3@ 三列のcsvなのに四列目の000"が存在しているのが間違いだな。 7. フィールドがダブルクォーテーションで囲まれている場合、フィールドの値に含まれるダブルクォーテーションは、
その直前にひとつダブルクォーテーションを付加して、エスケープしなければならない。
よく知らないけどこの辺ですか? ただのウサギなんですが、0埋め
もしくは、-埋めではダメなんですか? sed -n "/[^,]*,[^,]*,[^,]*,[^,]*/p"
とか…。 awkも結局シェルのプロセス外のシーケンサーの一種だけどな
で、デスクトップと何の関係が? 256文字すべてを含むフィールドが存在できる以上
セパレータ文字をエスケープする文字の存在は不可能? "エスケープ文字" "セパレータ文字" の並びがデータだと言われたらダメだな。 長く複雑なセパレータ文字列を使えば確率は下がるかもしれない。 デスクトップとして普及しないのはスレタイと関係ない事を延々とレスする基地外が跋扈する世界だからさ。 よくわからないけどこんなものが出来ました。
cat data.csv | sed 's%.*,"\([^",]*,[^",]*\)".*%"\1"%g' | grep '"[^"]*"' 長く複雑なセパレータ文字列案
"いやがらせすんな" >>651
三行目と四行目はいらないのかね?
全ての項目にはならないけど? 設問の不備ですかねぇ、出題者様ぁ。
まぁ、>>638をデータとしてそのまま使うのはあまりおすすめしませんねぇ。
修正してから加工したほうがよろしいんじゃないですか、お客さん。 教育関係者かね?
既知の問題だと思うけど、そいつらの相手はただの知恵比べでつまらんよ。
教室のテストじゃないからググるというカンニングでてきそう。
まぁ、>>638の時点でどうしてほしいか書いてない時点で間抜け確定なんだよ。
そんなやつの相手をしても無駄といえば無駄だったな。
教育関係者のアホなところはなんとしてでも生徒より上に立とうとすることだろうな。
そんな無駄な努力をするより未知の問題に立ち向かう姿勢を見せた方が生徒に慕われると思うよ。 俺もcsvはほとんど知らなかったからなぁ、
いい勉強にはなったかもしれんが
csvを使って何かするということはこの先ほとんど無いだろうな。
アホな教育者のマウントに付き合わされるだけか…。 σ < 教師は、制度上、未熟だから学びに来ている生徒に囲まれている
(V) 1学科に特化して毎日対峙しているのだから
|| 新しく学ぶことでは、当然、未熟な生徒など簡単に捻れる
だから、増長しやすい
それなのに上に立とうとうろたえる程度だったら
そりゃ悲惨な現実が展開することになるな、ワワワワワ 無駄な努力で無駄な知識を得させる、
我が国のリソースを食いつぶすのはやめてくれ。 σ < 用途に最適化したフィルターを用意し
(V) 用途に合うセパレーターを採用すればよい
|| しかし、エスケープシーケンスは必要になってくるだろう
フィルターを記述するのはお好みの言語でどうぞ
Linuxは良い練習台になります comma-separated values
のファイルに「最適なセパレータは?」とか言われてもな。 σ < ワロタ
(V) 目的に合うデーター形式のテキストを選べばよいだけ
|| >>673
なに一人で空回りしてんのさw
なにかしてほしいんじゃねーよ。
CSVなんて簡単なんて抜かしてるから、CSVを編集するなら
専用のツールを使わないとだめってことを指摘しただけだ。
世の中のCSVなんて、エクセルからの出力ばかりなんだから
シェルスクリプトやawkで簡単だぜーとか言ってると痛い目を見るぞ。 >>678
>>638 は真っ当な CSV 形式で、セパレータは , です。
, や改行を含めた場合、"" で囲まれます。改行も1つのデータなので削ってはいけません。 ところがPowerShellはcsv如き外のプロセスに頼らずに処理できる、と あー、コマンドレットとかそんな話じゃないからな
https://www.aruse.net/entry/2018/09/08/162030
あんなもんすぐ限界が来るから直接TextFieldParserの類を使った方がいい
そもそもcsv如きPowerShellなら自前のパーサで処理したとこで大した負担にもならんだろうが
StreamReader辺りで1行づつ読んで"の囲いとエスケープを処理しながら"の範囲外の,で分割して
テーブルで返す、なんてその辺に無駄に転がりまくってて自前で書いても何の自慢にもならん >>682
設問の不備は?
以下のようにしてみてって書いてるやろ。 まぁ、お前の部下でも生徒でもないんで義務はないけどな。 改行を含めるとかセパレート文字使うとかアホとしか思えんよ。 で、それに真面目に対応するMSはすごいけど
間抜けなデータの処理自慢するとか…。 これがおいらの正体ですwww
得意技は荒らしです
σ < おいら荒らしですwww ほんとテーノーですwwwww
(V)
|| http://warotateno.web.fc2.com/warotawarota.html >>688
2枚目の上の方にあるアイコンってなに? 理論上使えるけどほんとにそれ使ってそれは便利なの?
ってもん実際に使ってるの?
データを扱うファイル形式としての性格上改行文字含めるとか…。
もしエスケープ使ってでも使ってしまっている場合やはり出来うる限り修正すべきだろう。
長い注釈とか想定してるのかね? ■ このスレッドは過去ログ倉庫に格納されています