シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ:
シェルスクリプト総合 その29
https://mevius.5ch.net/test/read.cgi/tech/1537540487/
探検
シェルスクリプト総合 その30
■ このスレッドは過去ログ倉庫に格納されています
2019/07/01(月) 23:04:27.02ID:/rKj5XUf
539デフォルトの名無しさん
2019/08/05(月) 13:23:05.75ID:MNXFY7cg clearが実装されてない環境より
tputが実装されてない環境のほうが多くて、
tputを使うと逆に動かない環境の方が多くなっちゃう
例えばbusyboxとかalpine linuxとか
tputが実装されてない環境のほうが多くて、
tputを使うと逆に動かない環境の方が多くなっちゃう
例えばbusyboxとかalpine linuxとか
540デフォルトの名無しさん
2019/08/05(月) 13:31:42.54ID:O6CFE/yb which clear >/dev/null 2>&1 && echo has || echo 404
両対応書いておけばいい
両対応書いておけばいい
541デフォルトの名無しさん
2019/08/05(月) 14:26:42.83ID:MNXFY7cg /usr/share/terminfoの中を見てみたが、
シンボリックリンクを抜かして1700ものファイルがあった。
なるほどこれは大変だ。だがその中でどれだけのものが使われているのだろうか?
またどれだけ違いがあるのだろうか?ほとんどは細かい(殆ど使われない)
機能の違いでしか無いのではないか?
大抵は色を変えるぐらいしか使わないだろうし、
それ以上使っても画面サイズとカーソル移動ぐらいだろう。
数パターンしか違わないのであれば、独自対応も可能だろう。
実用レベルで考えるとtputを使うことは、使わないよりもデメリットが大きい気がしている。
シンボリックリンクを抜かして1700ものファイルがあった。
なるほどこれは大変だ。だがその中でどれだけのものが使われているのだろうか?
またどれだけ違いがあるのだろうか?ほとんどは細かい(殆ど使われない)
機能の違いでしか無いのではないか?
大抵は色を変えるぐらいしか使わないだろうし、
それ以上使っても画面サイズとカーソル移動ぐらいだろう。
数パターンしか違わないのであれば、独自対応も可能だろう。
実用レベルで考えるとtputを使うことは、使わないよりもデメリットが大きい気がしている。
542デフォルトの名無しさん
2019/08/05(月) 14:33:25.56ID:IMjI9HmJ vt100, xterm 以外設定した覚えがないな
543デフォルトの名無しさん
2019/08/05(月) 14:47:57.15ID:MNXFY7cg おそらく端末名の後ろは細かいバリエーションだろうからと削ってみたら789種類にまで減った
それでも数が多すぎるかつこんなの誰も使ってないやろと思ってしまって
何が違うのか把握する気が起きないレベル
でもinfocmpとか便利だな。よし俺の中で方針が決まった。
もしこれらの端末に対応しなければいけない自体になったら、
プログラムで直接tputを使用するのではなく、tputと同じ引き数で関数を実行しますから、
それで出力するエスケープシーケンスは設定ファイルで書き換えられるって方式にしよう。
さしあたって、現状、色を変えるだけしかやっとらんのだがtput使う必要あるのかな?
それでも数が多すぎるかつこんなの誰も使ってないやろと思ってしまって
何が違うのか把握する気が起きないレベル
でもinfocmpとか便利だな。よし俺の中で方針が決まった。
もしこれらの端末に対応しなければいけない自体になったら、
プログラムで直接tputを使用するのではなく、tputと同じ引き数で関数を実行しますから、
それで出力するエスケープシーケンスは設定ファイルで書き換えられるって方式にしよう。
さしあたって、現状、色を変えるだけしかやっとらんのだがtput使う必要あるのかな?
544デフォルトの名無しさん
2019/08/05(月) 14:55:51.10ID:uR0Am4u5 なんであるものを使わないんだろう
二段階認証おじさんみたいな頭の構造なんだろうか
二段階認証おじさんみたいな頭の構造なんだろうか
545デフォルトの名無しさん
2019/08/05(月) 15:27:49.43ID:MNXFY7cg > なんであるものを使わないんだろう
書いたでしょ? tputコマンドがない環境が現実としてある。
書いたでしょ? tputコマンドがない環境が現実としてある。
546デフォルトの名無しさん
2019/08/05(月) 15:54:00.38ID:MNXFY7cg 簡単なスクリプトを書いて、とりあえずcolsについて
データベースに登録されてる1700端末をすべて調べてみたが
すべてが 0x31 0x33 0x31 0x0a だった
boldだと非対応を除いて892端末。44パターン。結構違いがあるな
setafだと340端末、11パターン
まあtputを使うほうが楽だってのはわかるけど、エスケープシーケンスが違うのは
マイナー端末だろうし、数の割にパターン数は限られているので
完璧を求めたいなら別だけど使う環境で動けば良いわけで、tputを使用するのは過剰な気がするな。
データベースに登録されてる1700端末をすべて調べてみたが
すべてが 0x31 0x33 0x31 0x0a だった
boldだと非対応を除いて892端末。44パターン。結構違いがあるな
setafだと340端末、11パターン
まあtputを使うほうが楽だってのはわかるけど、エスケープシーケンスが違うのは
マイナー端末だろうし、数の割にパターン数は限られているので
完璧を求めたいなら別だけど使う環境で動けば良いわけで、tputを使用するのは過剰な気がするな。
547デフォルトの名無しさん
2019/08/05(月) 15:55:50.50ID:IMjI9HmJ tputがない環境って例えば何?
548デフォルトの名無しさん
2019/08/05(月) 16:04:49.48ID:MNXFY7cg む、/lib/terminfo/ 以下にも定義ファイルがあるのか
xterm-256colorがないのに使えると思ったら
まあ +40個しか変わらんけど
xterm-256colorがないのに使えると思ったら
まあ +40個しか変わらんけど
549デフォルトの名無しさん
2019/08/05(月) 16:05:10.32ID:MNXFY7cg >>547
書いたんだから上見ろ
書いたんだから上見ろ
550デフォルトの名無しさん
2019/08/05(月) 16:11:29.93ID:IMjI9HmJ まあいいけど日記はブログで書けや
551デフォルトの名無しさん
2019/08/05(月) 16:18:56.02ID:MNXFY7cg ブログねーしw ここはみんなのらくがき帳だ
552デフォルトの名無しさん
2019/08/05(月) 18:58:04.34ID:7Al1V6ob シェルスクリプトマスターの皆様
xxxxNN.txtというファイルが大量にあります(xxxxの部分はファイル名、NNの部分は0〜99の連番)
NNの部分が50未満ならxxxx50.txtにNNが50以上ならxxxx99.txtに一括でリネームしたいのですがやり方教えてください
xxxxNN.txtというファイルが大量にあります(xxxxの部分はファイル名、NNの部分は0〜99の連番)
NNの部分が50未満ならxxxx50.txtにNNが50以上ならxxxx99.txtに一括でリネームしたいのですがやり方教えてください
553デフォルトの名無しさん
2019/08/05(月) 19:10:26.82ID:AegVyuQi xxxx の部分はファイルによって異なるって前提でOK?
554デフォルトの名無しさん
2019/08/05(月) 19:15:29.15ID:7Al1V6ob >>553
YES
YES
555デフォルトの名無しさん
2019/08/05(月) 19:19:16.45ID:MNXFY7cg 無理に頭の体操的なことをせずに、こんな感じでいいでしょ?
for file in *; do
name=${file%[0-9]}
name=${name%[0-9]}
num=${file#$name}
[ $num -lt 50 ] && num=50 || num=99
mv "$file" "$name$num"
done
for file in *; do
name=${file%[0-9]}
name=${name%[0-9]}
num=${file#$name}
[ $num -lt 50 ] && num=50 || num=99
mv "$file" "$name$num"
done
556デフォルトの名無しさん
2019/08/05(月) 19:27:32.93ID:7Al1V6ob557デフォルトの名無しさん
2019/08/05(月) 19:28:09.53ID:MNXFY7cg 早速試すとか言ってるが、
適当に書いたからどうなっても知らんぞ。
適当に書いたからどうなっても知らんぞ。
558デフォルトの名無しさん
2019/08/05(月) 21:05:22.75ID:O6CFE/yb559デフォルトの名無しさん
2019/08/06(火) 08:47:13.20ID:fNxvG1AN ほとんど気にすることないと思うんだけどさ
みなさんが今まで携わってきたシステムでshが/bin/shにないシステムってあった?
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap10.html
ここによると/bin/shは既定されてない→つまり必ずしもあるとは限らない
みたいなんだけど、そんなシステムあるかね?
Solarisとかなら…と思ったけど/bin/shだったし。
みなさんが今まで携わってきたシステムでshが/bin/shにないシステムってあった?
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap10.html
ここによると/bin/shは既定されてない→つまり必ずしもあるとは限らない
みたいなんだけど、そんなシステムあるかね?
Solarisとかなら…と思ったけど/bin/shだったし。
560デフォルトの名無しさん
2019/08/06(火) 10:09:19.90ID:9obbnMlM Androidには/bin/shがないとか聞いたことあるな
561デフォルトの名無しさん
2019/08/06(火) 10:19:48.23ID:4kzCwlOl Androidはそもそも/binも/usrも無いな
mkshが/system/bin/shにある
mkshが/system/bin/shにある
562デフォルトの名無しさん
2019/08/06(火) 10:27:23.06ID:9obbnMlM Androidの環境ってよくわからん。
busyboxは採用して無くて、昔はtoolboxだったのが今はtoyboxを採用している。
しかしtoyboxのシェルであるtoyshは完成して無くてmkshを使っている。
という理解であってるんだろうか?
dockerfileないんかな?
busyboxは採用して無くて、昔はtoolboxだったのが今はtoyboxを採用している。
しかしtoyboxのシェルであるtoyshは完成して無くてmkshを使っている。
という理解であってるんだろうか?
dockerfileないんかな?
563デフォルトの名無しさん
2019/08/06(火) 17:00:21.88ID:g73t6D+3 Androidはヘッドレスでは立ち上がらんのじゃね?
昔見た限りだとinitスクリプト中でコケるんじゃないかと
昔見た限りだとinitスクリプト中でコケるんじゃないかと
564デフォルトの名無しさん
2019/08/07(水) 00:56:40.08ID:3XS5MIC7 Toyboxなんてものがあるのか。
565デフォルトの名無しさん
2019/08/07(水) 01:43:15.26ID:WK8NJ3/V diffみたいに二つのファイルを開いて、一行ずつ交互に比較できないかな?
bash依存禁止で
bash依存禁止で
566デフォルトの名無しさん
2019/08/07(水) 01:49:50.14ID:r57RWdCS diff使えばいいじゃん
567デフォルトの名無しさん
2019/08/07(水) 01:57:20.41ID:QJETJeRx diff のアルゴリズムは有名だから
あとはもっと具体的にどうさせたいのかによりそう
あとはもっと具体的にどうさせたいのかによりそう
568デフォルトの名無しさん
2019/08/07(水) 02:03:50.19ID:WK8NJ3/V 誰がdiffしたいっていったよ?
569デフォルトの名無しさん
2019/08/07(水) 02:43:40.37ID:fPg/gK/3 paste コマンド使うとか。見づらいけどw
$ paste -d '\n' file_a file_b
$ paste -d '\n' file_a file_b
570デフォルトの名無しさん
2019/08/07(水) 02:47:37.40ID:WK8NJ3/V 一旦質問を忘れて
同時に二つのファイルを開いて処理したい
同時に二つのファイルを開いて処理したい
571デフォルトの名無しさん
2019/08/07(水) 02:48:31.68ID:WK8NJ3/V 処理の内容は自由に変えられる
572デフォルトの名無しさん
2019/08/07(水) 02:56:33.93ID:fPg/gK/3 他のスクリプト言語を使う方が幸せになれる様な気がする
573デフォルトの名無しさん
2019/08/07(水) 03:19:53.88ID:prHDAaSE >>568
こんな奴に誰が答えたいと思うだろうか?
こんな奴に誰が答えたいと思うだろうか?
574デフォルトの名無しさん
2019/08/07(水) 03:26:49.06ID:arV/Dy+D またいつもの奴か
575デフォルトの名無しさん
2019/08/07(水) 03:43:34.68ID:3XS5MIC7 どうしてこう知識のない奴ほど傲慢なんだろうか。
576デフォルトの名無しさん
2019/08/07(水) 06:41:35.91ID:5FNsDR6i POSIXシェルのみで全て書くという縛りプレイが好きなんだろうw
POSIXは最低限のインターフェースを規格化しているだけで、結局はプラットフォーム別に書くしかないのが現状だからな
bashがあるならbashで書けばいい
GNU拡張が使えるなら使えばいい
あるもんは使えばいいんだよ
可搬性の幻想に囚われると逆に生産性が落ちる
POSIXは最低限のインターフェースを規格化しているだけで、結局はプラットフォーム別に書くしかないのが現状だからな
bashがあるならbashで書けばいい
GNU拡張が使えるなら使えばいい
あるもんは使えばいいんだよ
可搬性の幻想に囚われると逆に生産性が落ちる
577デフォルトの名無しさん
2019/08/07(水) 06:56:03.49ID:5FNsDR6i578デフォルトの名無しさん
2019/08/07(水) 07:11:20.44ID:aj+f89Vu >>575
パソコンの大先生にありがち。知識は少しはあると自負のアンバランスからだな
パソコンの大先生にありがち。知識は少しはあると自負のアンバランスからだな
579デフォルトの名無しさん
2019/08/07(水) 08:36:36.73ID:QJETJeRx awk で丸飲みしちゃえ
1ファイル1配列
メモリ節約なら
1行ずつ読むのをシンクロさせる
1ファイル1配列
メモリ節約なら
1行ずつ読むのをシンクロさせる
580デフォルトの名無しさん
2019/08/07(水) 11:22:21.65ID:WK8NJ3/V >>575
ほんとそれなw
できるのに、知識ないやつほどぐだぐだとレスをする
答えられないのを質問者のせいにする
exec 3<file1.txt
exec 4<file2.txt
read -r file1<&3
read -r file2<&4
echo "$file1 $file2"
read -r file1<&3
read -r file2<&4
echo "$file1 $file2"
ほんとそれなw
できるのに、知識ないやつほどぐだぐだとレスをする
答えられないのを質問者のせいにする
exec 3<file1.txt
exec 4<file2.txt
read -r file1<&3
read -r file2<&4
echo "$file1 $file2"
read -r file1<&3
read -r file2<&4
echo "$file1 $file2"
581デフォルトの名無しさん
2019/08/07(水) 11:28:44.82ID:3XS5MIC7 重症だなこりゃ
582デフォルトの名無しさん
2019/08/07(水) 11:31:15.75ID:WK8NJ3/V ちなみに>>580は
一回目のechoはファイルの1行目、
二回目のechoはファイルの2行目が
ちゃんと表示されるからなw
お前ら勉強してちゃんと質問に答えられるようになれよ
中途半端な知識で満足するな
一回目のechoはファイルの1行目、
二回目のechoはファイルの2行目が
ちゃんと表示されるからなw
お前ら勉強してちゃんと質問に答えられるようになれよ
中途半端な知識で満足するな
583デフォルトの名無しさん
2019/08/07(水) 11:36:26.97ID:5FNsDR6i584デフォルトの名無しさん
2019/08/07(水) 11:37:40.18ID:WK8NJ3/V などと、質問には答えずに
それでも悔しいからか、レスだけはするようで
それでも悔しいからか、レスだけはするようで
585デフォルトの名無しさん
2019/08/07(水) 11:41:40.99ID:9POPBXN5 すげえ嫌な感じの方法思い付いた。
まず二つのファイルの行数だけ wc -l で調べ、小さい方を max に入れておく。
n=1 にしてから max までループさせて、ループの中で awk を使って NR==$n の一行を双方のファイルから抜き出してそれぞれ別の変数に入れる。
なんてことをすると2つの(またはそれよりも多くの)ファイルから1行抜き出して何かをする事は可能だ。
しかし行が長くなればなるほど無駄な処理が増えて時間が掛かることは言うまでもない。
大変効率の悪い方法だ。
まず二つのファイルの行数だけ wc -l で調べ、小さい方を max に入れておく。
n=1 にしてから max までループさせて、ループの中で awk を使って NR==$n の一行を双方のファイルから抜き出してそれぞれ別の変数に入れる。
なんてことをすると2つの(またはそれよりも多くの)ファイルから1行抜き出して何かをする事は可能だ。
しかし行が長くなればなるほど無駄な処理が増えて時間が掛かることは言うまでもない。
大変効率の悪い方法だ。
586デフォルトの名無しさん
2019/08/07(水) 11:48:42.74ID:5FNsDR6i >>582
それやりたいなら普通はpaste使うけどな
それやりたいなら普通はpaste使うけどな
587デフォルトの名無しさん
2019/08/07(水) 11:48:48.99ID:WK8NJ3/V588デフォルトの名無しさん
2019/08/07(水) 11:48:50.45ID:9POPBXN5 >>580
おお。それでできるな。
おお。それでできるな。
589デフォルトの名無しさん
2019/08/07(水) 11:51:13.86ID:9POPBXN5590デフォルトの名無しさん
2019/08/07(水) 11:53:37.08ID:WK8NJ3/V >>586
> それやりたいなら普通はpaste使うけどな
残念ながらpasteでは自由な処理ができない
例えば、1つ目のファイルに書いてある命令を解釈しながら
2つ目のファイルを読み込んだり、他の処理をしたりとかね。
> それやりたいなら普通はpaste使うけどな
残念ながらpasteでは自由な処理ができない
例えば、1つ目のファイルに書いてある命令を解釈しながら
2つ目のファイルを読み込んだり、他の処理をしたりとかね。
591デフォルトの名無しさん
2019/08/07(水) 11:56:37.01ID:WK8NJ3/V で、POSIXで簡単にできることを、答えられずに
他の言語でやれとか、自由な処理をしたいっていうのに
それを理解しない答えを返してる奴ら
質問者の俺自身に、完璧な答えを出された気持ちはどう?w
他の言語でやれとか、自由な処理をしたいっていうのに
それを理解しない答えを返してる奴ら
質問者の俺自身に、完璧な答えを出された気持ちはどう?w
592デフォルトの名無しさん
2019/08/07(水) 11:57:46.26ID:WK8NJ3/V またいい問題を思いついたら、質問(?)してやるから
じゃーねーw
じゃーねーw
593デフォルトの名無しさん
2019/08/07(水) 11:57:52.31ID:5FNsDR6i594デフォルトの名無しさん
2019/08/07(水) 12:00:28.63ID:WK8NJ3/V >>593
同時に二つのファイルを開いて処理したい
って言った。
処理の内容は自由に変えられる
って言った。
同時に二つのファイルを開く以外のなにも条件として出してない
それができれば、いろいろと応用が効く
特定のことしかできないdiffやpasteでは
処理の内容が変えられないだろ
同時に二つのファイルを開いて処理したい
って言った。
処理の内容は自由に変えられる
って言った。
同時に二つのファイルを開く以外のなにも条件として出してない
それができれば、いろいろと応用が効く
特定のことしかできないdiffやpasteでは
処理の内容が変えられないだろ
595デフォルトの名無しさん
2019/08/07(水) 12:03:18.97ID:5FNsDR6i596デフォルトの名無しさん
2019/08/07(水) 12:04:06.23ID:9POPBXN5 >>591
なんで自分でわかるのに質問したのか謎
なんで自分でわかるのに質問したのか謎
597デフォルトの名無しさん
2019/08/07(水) 12:06:48.70ID:5FNsDR6i598デフォルトの名無しさん
2019/08/07(水) 12:08:56.79ID:fPg/gK/3 うーん、、、こんな感じ?
$ paste -d '\n' file1 file2 | xargs -d '\n' -n 2 | sh
file1 と file2 の内容例
file1:
====
ls
cp
mv
====
file2:
====
.
x y
y z
====
$ paste -d '\n' file1 file2 | xargs -d '\n' -n 2 | sh
file1 と file2 の内容例
file1:
====
ls
cp
mv
====
file2:
====
.
x y
y z
====
599デフォルトの名無しさん
2019/08/07(水) 12:15:06.92ID:9POPBXN5 あー。「どうだ俺はこんなにできるんだすごいだろう」みたいな。
じゃあ本当にやりたかった事は複数ファイル処理ではなくて自分の能力自慢か。
人から認められて承認欲求を満たしたいってことでもあるかな。
いつも人からバカにされてるから何かで人をバカにしたいというのもあるかも知れない。
合掌。
じゃあ本当にやりたかった事は複数ファイル処理ではなくて自分の能力自慢か。
人から認められて承認欲求を満たしたいってことでもあるかな。
いつも人からバカにされてるから何かで人をバカにしたいというのもあるかも知れない。
合掌。
600デフォルトの名無しさん
2019/08/07(水) 12:15:09.78ID:5FNsDR6i601デフォルトの名無しさん
2019/08/07(水) 12:17:59.15ID:WK8NJ3/V602デフォルトの名無しさん
2019/08/07(水) 12:19:12.78ID:WK8NJ3/V603デフォルトの名無しさん
2019/08/07(水) 12:21:45.21ID:WK8NJ3/V >>599
最初に用件をちゃんといってるのに、例をいうとその例しかできない方法を出すし
その質問にたいする曲解を潰していくうちに、その時間で自分で調べて解決できてしまうんだから
どうしろっていうんだw
最初に用件をちゃんといってるのに、例をいうとその例しかできない方法を出すし
その質問にたいする曲解を潰していくうちに、その時間で自分で調べて解決できてしまうんだから
どうしろっていうんだw
604デフォルトの名無しさん
2019/08/07(水) 12:22:22.45ID:WK8NJ3/V やっぱ「自決しました」で終わらせたほうが良かったか?
605デフォルトの名無しさん
2019/08/07(水) 12:32:00.78ID:9POPBXN5 >>603
普通にわからなくて質問していてやがて自分でわかった場合、普通はそれまでに答えてくれた人に対するお礼をするしこういう方法で出来ましたと自分のやったことを書く。
君の場合なぜか答えてくれた人に対する感謝の念がない。書かれたことが間違いや見当外れのことであっても普通は書いてくれたというだけで感謝するものだ。
しないとするなら少なくともその質問は質問に偽装された何か別のものだ。
普通にわからなくて質問していてやがて自分でわかった場合、普通はそれまでに答えてくれた人に対するお礼をするしこういう方法で出来ましたと自分のやったことを書く。
君の場合なぜか答えてくれた人に対する感謝の念がない。書かれたことが間違いや見当外れのことであっても普通は書いてくれたというだけで感謝するものだ。
しないとするなら少なくともその質問は質問に偽装された何か別のものだ。
606デフォルトの名無しさん
2019/08/07(水) 12:36:21.05ID:5FNsDR6i >>604
teratailとかSOで叩かれてこい
teratailとかSOで叩かれてこい
607デフォルトの名無しさん
2019/08/07(水) 12:37:21.72ID:WK8NJ3/V >>605
いい加減、客様は神様です。はやめたほうが良いよw
いい加減、客様は神様です。はやめたほうが良いよw
608デフォルトの名無しさん
2019/08/07(水) 12:42:23.91ID:9POPBXN5 >>607
言っている意味がわからない。何か特殊な宗教でも信奉しているのかね?
言っている意味がわからない。何か特殊な宗教でも信奉しているのかね?
609デフォルトの名無しさん
2019/08/07(水) 12:45:25.69ID:WK8NJ3/V610デフォルトの名無しさん
2019/08/07(水) 13:00:34.72ID:9POPBXN5611デフォルトの名無しさん
2019/08/07(水) 13:17:46.60ID:VwbuDBsd612デフォルトの名無しさん
2019/08/07(水) 13:23:21.21ID:WK8NJ3/V 日本の礼儀と隣国の話しかできないのが世界が狭いよな
613デフォルトの名無しさん
2019/08/07(水) 13:27:24.72ID:9POPBXN5 >>611
何かを与えてくれたらお礼をするのは国に関係なくどこでも共通の礼儀だが、君はそれをしないばかりか与えてもらって当然と考えるとするならば、それは正に今の韓国と同じだね。
何かを与えてくれたらお礼をするのは国に関係なくどこでも共通の礼儀だが、君はそれをしないばかりか与えてもらって当然と考えるとするならば、それは正に今の韓国と同じだね。
614デフォルトの名無しさん
2019/08/07(水) 13:29:19.39ID:9POPBXN5 優遇して与えていた側に礼を言わないばかりか盗人猛々しいとでも言うかね?
615デフォルトの名無しさん
2019/08/07(水) 13:31:40.13ID:WK8NJ3/V ということで、質問に対して
答えを返した俺に感謝しろ
という話さ
答えを返した俺に感謝しろ
という話さ
616デフォルトの名無しさん
2019/08/07(水) 13:37:09.23ID:5FNsDR6i これ触っちゃあかんやつや
617デフォルトの名無しさん
2019/08/07(水) 13:39:19.49ID:WK8NJ3/V 俺は別に自決しましたで終わらせても良かったんだが、
俺ができるってことを示さなければ、
シェルスクリプトで同時に二つのファイルを開けるってことも
知らなかったんだろうな
俺ができるってことを示さなければ、
シェルスクリプトで同時に二つのファイルを開けるってことも
知らなかったんだろうな
618デフォルトの名無しさん
2019/08/07(水) 13:41:42.46ID:aj+f89Vu >>616
それを触りすぎw
それを触りすぎw
619デフォルトの名無しさん
2019/08/07(水) 13:46:29.59ID:WK8NJ3/V この先の人生、似たような問題に直面したとき、
今日の会話を思い出しながらも、なかったことにして
俺が回答したテクニックを使うのだろう
今日の会話を思い出しながらも、なかったことにして
俺が回答したテクニックを使うのだろう
620デフォルトの名無しさん
2019/08/07(水) 13:49:03.15ID:9POPBXN5 >>615
質問者は君自信だ。それに関しては君が君に感謝すれば良い。他の人は少なくとも同じ質問はしていないのだから君に感謝する必要はない。
という、普通の事が君にはわからないのか?発達障害か何かか?だったらしょうがないから形だけ他の人を真似て合わせろ。そうすれば無用なトラブルは減らせる。
質問者は君自信だ。それに関しては君が君に感謝すれば良い。他の人は少なくとも同じ質問はしていないのだから君に感謝する必要はない。
という、普通の事が君にはわからないのか?発達障害か何かか?だったらしょうがないから形だけ他の人を真似て合わせろ。そうすれば無用なトラブルは減らせる。
621デフォルトの名無しさん
2019/08/07(水) 13:51:39.12ID:WK8NJ3/V ん?他の人って会話に参加してる人だけのことだと思ってるのか?
検索で見つけた人とかあるだろう。
相変わらず視野が狭いんだな。
検索で見つけた人とかあるだろう。
相変わらず視野が狭いんだな。
622デフォルトの名無しさん
2019/08/07(水) 14:04:14.01ID:WK8NJ3/V 検索した人は俺に感謝する。ここでレスしてたやつも同じ問題がでたとき
嫌々ながら俺に感謝する。ウィン♪ウィン♪ってやつではないか
嫌々ながら俺に感謝する。ウィン♪ウィン♪ってやつではないか
623デフォルトの名無しさん
2019/08/07(水) 14:08:05.92ID:9POPBXN5 >>621
おだいじに。
おだいじに。
624デフォルトの名無しさん
2019/08/07(水) 14:09:22.96ID:9POPBXN5 夏の暑さも酷なことをするもんだ。
625デフォルトの名無しさん
2019/08/07(水) 14:11:08.56ID:WK8NJ3/V エアコンもってないのか?
626デフォルトの名無しさん
2019/08/07(水) 15:11:31.23ID:3XS5MIC7 どうでもいいけどアレを「完璧な回答」とか言ってる時点でお察しw
ファイルディスクリプタを使った方法にはPOSIXの範囲では解決できない重大な落とし穴がある。
まあ態々言わなくても分かるだろうから,明言はしないがw
ファイルディスクリプタを使った方法にはPOSIXの範囲では解決できない重大な落とし穴がある。
まあ態々言わなくても分かるだろうから,明言はしないがw
627デフォルトの名無しさん
2019/08/07(水) 15:23:56.01ID:3XS5MIC7 ああ一応分からん人の為にヒントをいうと,実は2018年あたりの過去スレで言及してる。
628デフォルトの名無しさん
2019/08/07(水) 18:34:55.40ID:WK8NJ3/V ※その落とし穴がなんなのか言わないのは、わからん人のためよりも
俺に意地悪をすることを選んだから。結局それがそいつの本性なんだよ。
俺に意地悪をすることを選んだから。結局それがそいつの本性なんだよ。
629デフォルトの名無しさん
2019/08/07(水) 19:38:28.14ID:DcvmRDxD {{"item1":["key1":"value1"]},{"item2":["key2":"value2"]}}
{{"item1":["key1":"value1"]}}
{}
{{"item1":["key1":"value1"]},{"item2":["key2":"value2"]},{"item3":["key3":"value3"]}}
みたいに中途半端なjsonがたくさん混ざっているファイルを
item1,item2,item3
value1,value2,
value1,,
,,
value1,value2,value3
のような綺麗なcsvで出力する方法ってありますか?
jqコマンドを使っても上手くいかず……
{{"item1":["key1":"value1"]}}
{}
{{"item1":["key1":"value1"]},{"item2":["key2":"value2"]},{"item3":["key3":"value3"]}}
みたいに中途半端なjsonがたくさん混ざっているファイルを
item1,item2,item3
value1,value2,
value1,,
,,
value1,value2,value3
のような綺麗なcsvで出力する方法ってありますか?
jqコマンドを使っても上手くいかず……
630デフォルトの名無しさん
2019/08/07(水) 19:41:37.81ID:WK8NJ3/V631デフォルトの名無しさん
2019/08/07(水) 19:46:34.34ID:WK8NJ3/V 1行ずつループで回してもできそうだが、なんどもjqコマンドを呼び出すことになって
時間がかかりそうだから、
[
1行目 ,
2行目 ,
3行目 ,
4行目
]
みたいに変換して、jq一発にしたほうが速いだろうな。
そのやり方は、俺以外でも答えられるやろ?
時間がかかりそうだから、
[
1行目 ,
2行目 ,
3行目 ,
4行目
]
みたいに変換して、jq一発にしたほうが速いだろうな。
そのやり方は、俺以外でも答えられるやろ?
632デフォルトの名無しさん
2019/08/07(水) 22:04:49.28ID:fPg/gK/3 >>629
GNU awk 4.0.0 以降で
$ gawk -ijoin -vFPAT='"[^"]+"' '{
for(i=1;i<=NF;i+=3){
item[$i]=1
row[NR,$i]=$(i+2)
}
}END{
for(i in item){x[n++]=i}
n--
print join(x,0,n,",")
for(i=1;i<=NR;i++){
k=0
for(j in x){
r[k++]=row[i,x[j]]
}
print join(r,0,n,",")
}
}' data.jsonl
GNU awk 4.0.0 以降で
$ gawk -ijoin -vFPAT='"[^"]+"' '{
for(i=1;i<=NF;i+=3){
item[$i]=1
row[NR,$i]=$(i+2)
}
}END{
for(i in item){x[n++]=i}
n--
print join(x,0,n,",")
for(i=1;i<=NR;i++){
k=0
for(j in x){
r[k++]=row[i,x[j]]
}
print join(r,0,n,",")
}
}' data.jsonl
633デフォルトの名無しさん
2019/08/08(木) 02:47:04.99ID:/tBUMiMq これは、Ruby で、JSON.parse できない。
何や、この形式は?
{"item1":["key1":"value1"]}
[ ] の中に、{ } を入れたら、OK だが、
{"item1":[{"key1":"value1"}]}
何や、この形式は?
{"item1":["key1":"value1"]}
[ ] の中に、{ } を入れたら、OK だが、
{"item1":[{"key1":"value1"}]}
634633
2019/08/08(木) 03:01:29.15ID:/tBUMiMq https://jsonformatter.curiousconcept.com/
このサイトで、JSON の形式が正しいかどうかチェックしたら、エラーになった!
{"item1":["key1":"value1"]}
Error:Expecting comma or ], not colon.
このサイトで、JSON の形式が正しいかどうかチェックしたら、エラーになった!
{"item1":["key1":"value1"]}
Error:Expecting comma or ], not colon.
635デフォルトの名無しさん
2019/08/08(木) 03:55:09.53ID:10jj0QOT636デフォルトの名無しさん
2019/08/08(木) 06:10:00.05ID:l7k6B2kQ >>629
{{"item1":["key1":"value1"]}}
じゃなくて
{{"aaaa":["bbbb":"cccc"]}}
でも
"cccc" って表示されるけどOK?
あと {{"item1":["key1":"val\"ue1"]}}
みたいに " がデータに入ってる場合はあるの?
それと key1、key2、key3 ってキー名が変わるのは正しいの?
jsonlとしても正しくないけど、書き間違いじゃないの?
{{"item1":["key1":"value1"]}}
じゃなくて
{{"aaaa":["bbbb":"cccc"]}}
でも
"cccc" って表示されるけどOK?
あと {{"item1":["key1":"val\"ue1"]}}
みたいに " がデータに入ってる場合はあるの?
それと key1、key2、key3 ってキー名が変わるのは正しいの?
jsonlとしても正しくないけど、書き間違いじゃないの?
637デフォルトの名無しさん
2019/08/08(木) 07:06:18.58ID:DLp++heI638633
2019/08/08(木) 07:20:32.75ID:/tBUMiMq JavaScript で、: は、オブジェクトの属性だろ。
だから、{ } 内でしか使えない
だから、1 はダメで、2, 3 はOK
1. {"item1":["key1":"value1"]}
2.1 {"item1":["value1"]}
2.2 {"item1":["key1","value1"]}
3. {"item1":[{"key1":"value1"}]}
だから、{ } 内でしか使えない
だから、1 はダメで、2, 3 はOK
1. {"item1":["key1":"value1"]}
2.1 {"item1":["value1"]}
2.2 {"item1":["key1","value1"]}
3. {"item1":[{"key1":"value1"}]}
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】J1昇格PO決勝戦 千葉、来季のJ1昇格が決定 17年越しの悲願叶える…オリジナル10が05年以来のJ1にそろう [久太郎★]
- 南京で「大虐殺」追悼式典 中国、高市政権をけん制 (共同通信) [少考さん★]
- 【鹿児島】容疑者は大学生。国道3号を横断中の母娘を車ではねる――「太陽がまぶしくて見えなかった」。20歳女を現行犯逮捕 日置署 [ぐれ★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★5 [ぐれ★]
- 【日銀】0.75%に利上げへ 来週の決定会合で、30年ぶり水準 賃金改善の継続見込む [ぐれ★]
- 京都のホテル大幅値下げ 訪日中国人客、年1000万人目前で急ブレーキ ★3 [蚤の市★]
- 【急募】今後、高市政権で追加されそうな税金、増税 [943688309]
- アイ・オー・データのSSD、HDD、USBメモリなど値上げ。最大54.8% [742348415]
- 【悲報】婚活女子(37)「非モテのブス男性が嫌われる理由はファッションや身だしなみがダサいから。ダサい人間は人とは思えないよ [257926174]
- エプスタインさん、なぜかトランプ印のコンドームを生産していた…… 高市早苗 [175344491]
- なかやま〜きんにくんだよ〜みたいな事言う女芸人いたじゃん?
- 小野田紀美「外国人帰れ!って言って石を投げられるのは毎日のように。もう殴る蹴るは当たり前でした。それで喧嘩強いんですよ、私。」 [856698234]
