シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
・「○○(他の言語)でいいやん」は禁止。他のスレに行ってください。
シェルスクリプト総合 その30
https://mevius.5ch.net/test/read.cgi/tech/1561989867/
探検
シェルスクリプト総合 その31
■ このスレッドは過去ログ倉庫に格納されています
2019/08/10(土) 23:17:50.64ID:L+B8OP2P
2019/08/11(日) 22:34:19.90ID:owKtPG/2
POSIX準拠を意識してない未熟ものにとってはそうなんだろうな
2019/08/11(日) 22:39:31.82ID:owKtPG/2
POSIX準拠を意識している者にとっては、-nが使えないとか
想定の範囲内だからね。yashとか使えないわけだし。
だから最初から-nを使うぐらいならprintfを使ってる。
POSIX準拠でコードを書いてる人にとっては何ら問題ないわけ
想定の範囲内だからね。yashとか使えないわけだし。
だから最初から-nを使うぐらいならprintfを使ってる。
POSIX準拠でコードを書いてる人にとっては何ら問題ないわけ
2019/08/11(日) 22:58:12.04ID:tux8oNSc
あれだけアホ晒しても僕偉いww
2019/08/11(日) 23:02:56.27ID:owKtPG/2
俺が偉く見えてしまうのは、あんたの主観だから俺にはどうしようもないw
2019/08/11(日) 23:05:15.27ID:tux8oNSc
>POSIX準拠を意識してない未熟もの
不特定多数が含まれるというのがわからないのね
さすがあれだけアホ晒しても僕偉い人ww
不特定多数が含まれるというのがわからないのね
さすがあれだけアホ晒しても僕偉い人ww
2019/08/11(日) 23:08:19.13ID:owKtPG/2
不特定多数が含まれるからなんだっていうんだろう?
2019/08/11(日) 23:10:58.42ID:tux8oNSc
すげえよっ、さすがあれだけアホ晒しても僕偉い人ww脳の中身理解不能
2019/08/12(月) 00:45:59.42ID:OLWOasI9
なんでスレ進んでたのかと思ったらまたはしゃいでたのか
2019/08/12(月) 00:50:54.61ID:kdU0FwTT
神様なんだろ。許してやれ
(しかしネットは怖いな。やらかしたことがほぼ一生残る。)
(しかしネットは怖いな。やらかしたことがほぼ一生残る。)
2019/08/12(月) 00:56:58.46ID:LRX4Utg1
なにやらかしたの?
2019/08/12(月) 01:16:22.35ID:Mlg83N6h
よくわからん。揚げ足で騒いでるように見える。
2019/08/12(月) 01:48:53.53ID:kdU0FwTT
揚げ足というか、単に普通の失敗(理解不足)なんだけどな。
謝らないのが問題だった。
素直に謝罪しておけばよかったものを…。
謝らないのが問題だった。
素直に謝罪しておけばよかったものを…。
2019/08/12(月) 02:03:12.93ID:tYO0tRVG
謝罪しろって韓国かよw
2019/08/12(月) 02:05:47.65ID:U5E/4roV
Mac特有の挙動(UNIXの要求に合わせるためにAppleが独自で変更してる)なのに
それに気づかないで、bashでは-nに対応してないって騒いでたんだっけ?
それに気づかないで、bashでは-nに対応してないって騒いでたんだっけ?
2019/08/12(月) 03:01:38.96ID:vrbZPf3l
そう。挙句の果てに、Macでテストしてなかった
お前が悪いとか言って荒らし始めた。
お前が悪いとか言って荒らし始めた。
2019/08/12(月) 05:08:02.14ID:kdU0FwTT
自分に都合が悪くなるとすぐ韓国とかよく分からんこと持ちだして話を逸らすあたり,
これは重症っすね……。
これは重症っすね……。
2019/08/12(月) 08:13:29.23ID:TQ9KMPr7
これは人が離れて行くのも無理はないな
・自分の誤りを絶対に認めない
・人間関係は上下の主従関係のみで平等の概念がない
どこかで見たことあるような...おや、誰か来たようだ
・自分の誤りを絶対に認めない
・人間関係は上下の主従関係のみで平等の概念がない
どこかで見たことあるような...おや、誰か来たようだ
2019/08/12(月) 08:14:46.28ID:d52ffprB
たしか前スレでも、質問してる側が下なんだから
回答する側に対してへりくだれ的なことを言ってたよな
回答する側に対してへりくだれ的なことを言ってたよな
100デフォルトの名無しさん
2019/08/12(月) 08:16:14.37ID:d52ffprB101デフォルトの名無しさん
2019/08/12(月) 08:22:26.39ID:TQ9KMPr7 あ、ひとつ忘れてた
・論点のすり替えが上手
・論点のすり替えが上手
102デフォルトの名無しさん
2019/08/12(月) 08:38:45.76ID:HKovfvTl またこいつは朝からシェルスクリプト「ではない」話をしてんのか
103デフォルトの名無しさん
2019/08/12(月) 11:05:57.03ID:kdU0FwTT そうせざるえないほど酷い人がいるからね。
このスレの住人は結構優しいんじゃないかな。
人格欠陥者を罵しったり無視することは簡単だけど,
その欠点を皆で指摘してくれるなんてかなり貴重だと思う。
まあどうせ当の本人は自分に対する攻撃としか捉えず,
都合の悪いことには目を塞ぐ能力をフル活用して目を翥すんだろうが。
このスレの住人は結構優しいんじゃないかな。
人格欠陥者を罵しったり無視することは簡単だけど,
その欠点を皆で指摘してくれるなんてかなり貴重だと思う。
まあどうせ当の本人は自分に対する攻撃としか捉えず,
都合の悪いことには目を塞ぐ能力をフル活用して目を翥すんだろうが。
104デフォルトの名無しさん
2019/08/12(月) 11:48:18.69ID:7x51tVmW bash 依存だけどこんな関数を作って使ってた事もあった
function _join {
local IFS="$1"; shift; echo "$*"
}
bash$ _join , {1..10}
1,2,3,4,5,6,7,8,9,10
function _join {
local IFS="$1"; shift; echo "$*"
}
bash$ _join , {1..10}
1,2,3,4,5,6,7,8,9,10
105デフォルトの名無しさん
2019/08/12(月) 11:51:12.48ID:OLWOasI9 いくらID変えても同じ言動なのがいよね
欲を言えばコテを付けてくれれば処分しやすいんだけど
欲を言えばコテを付けてくれれば処分しやすいんだけど
106デフォルトの名無しさん
2019/08/12(月) 12:15:08.81ID:kdU0FwTT ていうか3スレくらい前からワッチョイ導入しようという話がチョイチョイ出てはいる。
107デフォルトの名無しさん
2019/08/12(月) 15:40:50.17ID:FEiQT6YL >>104
それをbash依存にしないのは簡単だよ
localの代わりにサブシェルを使えばいい
_join {
(IFS=$1; shift; echo "$*")
}
ちなみにlocalはPOSIX準拠じゃないけど、
local もしくは localと同等のことができるtypeset のどちらかが
POSIX準拠シェルのすべてに(おそらく)搭載されてるから
2パターン作ることになるが、サブシェルを使わずに作ることも可能
面倒だからOLDIFSに対比させるのが楽だけどねw
それをbash依存にしないのは簡単だよ
localの代わりにサブシェルを使えばいい
_join {
(IFS=$1; shift; echo "$*")
}
ちなみにlocalはPOSIX準拠じゃないけど、
local もしくは localと同等のことができるtypeset のどちらかが
POSIX準拠シェルのすべてに(おそらく)搭載されてるから
2パターン作ることになるが、サブシェルを使わずに作ることも可能
面倒だからOLDIFSに対比させるのが楽だけどねw
108デフォルトの名無しさん
2019/08/12(月) 16:10:50.92ID:7x51tVmW _join () (IFS=$1; shift; echo "$*")
でいいんじゃね
でいいんじゃね
109デフォルトの名無しさん
2019/08/12(月) 16:15:47.05ID:FEiQT6YL >>108
その書式、使えないシェルがあるんだよ。
その書式、使えないシェルがあるんだよ。
110デフォルトの名無しさん
2019/08/12(月) 16:18:53.19ID:7x51tVmW IFSを使う場合はデリミタに1文字しか使えないので
その後はこんな↓ふうに書き直した(けど最近は全く使うことがない)
function _join {
local d="$1"; shift; printf '%s' "$1"; shift;
printf '%s' "${@/#/$d}"; echo;
}
$ _join '->' {{1..4},5,{4..1..-1}}
1->2->3->4->5->4->3->2->1
その後はこんな↓ふうに書き直した(けど最近は全く使うことがない)
function _join {
local d="$1"; shift; printf '%s' "$1"; shift;
printf '%s' "${@/#/$d}"; echo;
}
$ _join '->' {{1..4},5,{4..1..-1}}
1->2->3->4->5->4->3->2->1
111デフォルトの名無しさん
2019/08/12(月) 16:20:03.86ID:FEiQT6YL あ、でも今調べたら相当古いbashだけみたい。ならいいか
112デフォルトの名無しさん
2019/08/12(月) 16:20:31.00ID:VzSWusfF shellcheck のような書き方を指導する奴で
POSIX準拠の書き方でないところをチェックするツールでもあるのか?
滅茶苦茶詳しすぎる
POSIX準拠の書き方でないところをチェックするツールでもあるのか?
滅茶苦茶詳しすぎる
113デフォルトの名無しさん
2019/08/12(月) 16:37:37.51ID:FEiQT6YL >>110
それをbash依存なくするにはループだろうな
たぶん誰でもわかると思うのでコードは省略w
local変数使わなくても行けるかも
>>112
shellcheck 以外だと使ったことがないけど shfmt
・・・でチェックできるのか知らない。使い方がよくわからないw
shfmtという名前を忘れたのでぐぐったら bash依存チェックするツールがあったよw
https://sourceforge.net/projects/checkbaskisms/
https://github.com/openstack/bashate
俺はもうだいたい覚えたね。POSIX準拠の書き方を調べたと言うよりも
とあるシェルで動かない。なんでや?POSIX準拠じゃないんかい。の繰り返しで。
だからPOSIX準拠だけど、シェルのバグで動かないっていうのも頭に入ってる。
それをbash依存なくするにはループだろうな
たぶん誰でもわかると思うのでコードは省略w
local変数使わなくても行けるかも
>>112
shellcheck 以外だと使ったことがないけど shfmt
・・・でチェックできるのか知らない。使い方がよくわからないw
shfmtという名前を忘れたのでぐぐったら bash依存チェックするツールがあったよw
https://sourceforge.net/projects/checkbaskisms/
https://github.com/openstack/bashate
俺はもうだいたい覚えたね。POSIX準拠の書き方を調べたと言うよりも
とあるシェルで動かない。なんでや?POSIX準拠じゃないんかい。の繰り返しで。
だからPOSIX準拠だけど、シェルのバグで動かないっていうのも頭に入ってる。
114デフォルトの名無しさん
2019/08/12(月) 16:53:21.75ID:FEiQT6YL115デフォルトの名無しさん
2019/08/13(火) 12:23:48.45ID:PvshuRsa $ ksh -c 'echo $KSH_VERSION'
Version AJM 93u+ 2012-08-01
これのAJMはなんだろう?と思ってググったけど、
コンパイル時のオプションってことでいいのかな?
https://www.in-ulm.de/~mascheck/various/shells/ksh_versions.html
After "Version" now there is a concatenation of letters indicating compile time options:
A SHOPT_AUDIT /* keyboard logging */
B SHOPT_BASH /* bash compatibility code */
L SHOPT_ACCT /* accounting */
M SHOPT_MULTIBYTE /* multibyte character handling */
Jはこれ?
J SHOPT_COSHELL /* job pools */
Version AJM 93u+ 2012-08-01
これのAJMはなんだろう?と思ってググったけど、
コンパイル時のオプションってことでいいのかな?
https://www.in-ulm.de/~mascheck/various/shells/ksh_versions.html
After "Version" now there is a concatenation of letters indicating compile time options:
A SHOPT_AUDIT /* keyboard logging */
B SHOPT_BASH /* bash compatibility code */
L SHOPT_ACCT /* accounting */
M SHOPT_MULTIBYTE /* multibyte character handling */
Jはこれ?
J SHOPT_COSHELL /* job pools */
116デフォルトの名無しさん
2019/08/15(木) 23:08:43.05ID:xN8IaB/K 前スレでboshのビルドができないと言っていた人へ
2019-08-13版でビルドできるようになってます。
2019-06-13 OK
2019-07-15 NG
2019-07-22 NG
2019-08-13 OK
2019-08-13版でビルドできるようになってます。
2019-06-13 OK
2019-07-15 NG
2019-07-22 NG
2019-08-13 OK
117デフォルトの名無しさん
2019/08/17(土) 20:53:09.43ID:R5VCpMP+ POSIXで定義されてるbatchとかatとかって使ってる?
俺は可搬性を失なう覚悟でcron使ってるけど
俺は可搬性を失なう覚悟でcron使ってるけど
118デフォルトの名無しさん
2019/08/17(土) 21:03:17.18ID:He41kTu9 pythonで mycron.pyを書いた
python さえ動けば
python さえ動けば
119デフォルトの名無しさん
2019/08/17(土) 21:23:22.11ID:g4f/iCif120デフォルトの名無しさん
2019/08/17(土) 21:26:52.13ID:g4f/iCif ん?cronはPOSIXじゃないけど、crontabはPOSIXなのか?
これはコマンドは決まってるけど、それを実現しているものは決まってないってことなのかな?
これはコマンドは決まってるけど、それを実現しているものは決まってないってことなのかな?
121デフォルトの名無しさん
2019/08/17(土) 21:30:38.30ID:R5VCpMP+122デフォルトの名無しさん
2019/08/18(日) 13:02:29.86ID:zqR8kD3Y123デフォルトの名無しさん
2019/08/18(日) 13:29:09.33ID:KK6bG3/n いつまでも完成しそうもない開発系?のツールなんかより
dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに
だからいつまで経ってもMacのコマンドは貧弱でhomebrewでcoreutilsを入れなければいけなくなる
LinuxをバンドルしたWSLは便利になった。
dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに
だからいつまで経ってもMacのコマンドは貧弱でhomebrewでcoreutilsを入れなければいけなくなる
LinuxをバンドルしたWSLは便利になった。
124デフォルトの名無しさん
2019/08/18(日) 19:00:47.29ID:zqR8kD3Y 単に拡張すりゃいいってもんじゃない。
どのシステムでも使えることを優先すべき。
どのシステムでも使えることを優先すべき。
125デフォルトの名無しさん
2019/08/19(月) 03:40:41.24ID:ZZoimR+D >>123
> dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに
それな。 date +%s がPOSIX準拠じゃないとかびっくりやわw
unix timeどうすりゃいいねん。
> dateとかsortとか基本形のコマンドのオプションを拡張すればいいのに
それな。 date +%s がPOSIX準拠じゃないとかびっくりやわw
unix timeどうすりゃいいねん。
126デフォルトの名無しさん
2019/08/19(月) 04:03:23.22ID:M9mgefHn127デフォルトの名無しさん
2019/08/19(月) 07:34:11.92ID:JcVwKxxm >>126
それに対応することによる各社のメリットとは?
それに対応することによる各社のメリットとは?
128デフォルトの名無しさん
2019/08/19(月) 08:34:19.51ID:xlQPwL5+ ないだろJK
129デフォルトの名無しさん
2019/08/19(月) 08:35:48.66ID:xlQPwL5+ ていうか言語仕様の素早い更新・機能追加が好きならPython使えば?
過去互換性も同じくらい重視したいならC#-shell
過去互換性も同じくらい重視したいならC#-shell
130デフォルトの名無しさん
2019/08/19(月) 09:33:40.73ID:W8+ngSHm >>127
なんのためにPOSIXが出来て、みんなそれに対応してると思ってるの?
なんのためにPOSIXが出来て、みんなそれに対応してると思ってるの?
131デフォルトの名無しさん
2019/08/19(月) 09:48:50.15ID:JcVwKxxm >>130
当時と現在の状況の違いが理解できない理想主義の人?
当時と現在の状況の違いが理解できない理想主義の人?
132デフォルトの名無しさん
2019/08/19(月) 09:51:47.61ID:W/U4wDij 現在ってまだPOSIX改定されてるでしょ?
歩みが遅いことを批判するのは正しいが、
そこにPOSIXはもういらないっていうのは、
POSIXの存在を否定してるよ。
歩みが遅いことを批判するのは正しいが、
そこにPOSIXはもういらないっていうのは、
POSIXの存在を否定してるよ。
133デフォルトの名無しさん
2019/08/19(月) 09:54:30.67ID:xlQPwL5+134デフォルトの名無しさん
2019/08/19(月) 09:59:46.47ID:W/U4wDij135デフォルトの名無しさん
2019/08/19(月) 10:13:25.39ID:U/sDEGN5 /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
136デフォルトの名無しさん
2019/08/19(月) 11:28:24.99ID:xlQPwL5+ 文体がちょっと違うから危うく荒しに構うところだった。
いつものチガイか。
いつものチガイか。
137デフォルトの名無しさん
2019/08/19(月) 11:36:19.43ID:JcVwKxxm138デフォルトの名無しさん
2019/08/19(月) 11:40:44.54ID:W/U4wDij139デフォルトの名無しさん
2019/08/19(月) 12:46:41.76ID:IzREAmBO シェル単体の交換可能性を担保したところで出来ることはたかが知れてる。
システムとして実用的なレベルまで規格拡張しないと使いものにならない。
現状のPOSIXは最低限のI/F仕様を規格化するだけの中途半端な規格だ。
将来的にネットワーク、ハードウェア管理、セキュリティなどシステムとしての仕様が標準化され、全てのシステムがそれに準拠するまでは、POSIXに固執する必要性は無いと言っていい。
もちろん、可能な範囲で可搬性を追求することは間違いではないと思うぞ。現状では限界があるということだ。
システムとして実用的なレベルまで規格拡張しないと使いものにならない。
現状のPOSIXは最低限のI/F仕様を規格化するだけの中途半端な規格だ。
将来的にネットワーク、ハードウェア管理、セキュリティなどシステムとしての仕様が標準化され、全てのシステムがそれに準拠するまでは、POSIXに固執する必要性は無いと言っていい。
もちろん、可能な範囲で可搬性を追求することは間違いではないと思うぞ。現状では限界があるということだ。
140デフォルトの名無しさん
2019/08/19(月) 12:51:57.60ID:4iryI+Qn 現実として問題になってるのは、半ば当たり前のように書かれる
Linuxで動くコマンドが、macOSで動かないことだよな
ググって、なるほどこれでできるのか、って思ってもmacOSで動かないのは問題
Linuxで動くコマンドが、macOSで動かないことだよな
ググって、なるほどこれでできるのか、って思ってもmacOSで動かないのは問題
141デフォルトの名無しさん
2019/08/19(月) 12:52:53.15ID:4iryI+Qn142デフォルトの名無しさん
2019/08/19(月) 12:58:21.94ID:IzREAmBO143デフォルトの名無しさん
2019/08/19(月) 13:02:42.41ID:4iryI+Qn >>142
主張がよくわからないんだけど
「シェル単体の交換可能性を担保したところで出来ることはたかが知れてる。」から、
現状のPOSIXは中途半端で、もっといいものにするために新しいPOSIXを
規格化するべきだって言ってるってことあってる?
主張がよくわからないんだけど
「シェル単体の交換可能性を担保したところで出来ることはたかが知れてる。」から、
現状のPOSIXは中途半端で、もっといいものにするために新しいPOSIXを
規格化するべきだって言ってるってことあってる?
144デフォルトの名無しさん
2019/08/19(月) 13:23:29.26ID:oONnFCD4 POSIXのような標準はそう簡単には変更できないだろ。バージョンによるになるから
そして、ツールを作るのは大なり小なり思想があってやっているんで、言うようなできる最大のものに合わせるなんてなりっこない
文句なり言うなら、POSIXにではなくBSDに言う方が現実的だし、文句言うくらいな自分で実装してBSDに上げればいいだろう。上げても却下されるとかあるかもだがw
言っているのは単にWebで探した事例がLinuxでBSDだと動かないってのだけだもん
そして、ツールを作るのは大なり小なり思想があってやっているんで、言うようなできる最大のものに合わせるなんてなりっこない
文句なり言うなら、POSIXにではなくBSDに言う方が現実的だし、文句言うくらいな自分で実装してBSDに上げればいいだろう。上げても却下されるとかあるかもだがw
言っているのは単にWebで探した事例がLinuxでBSDだと動かないってのだけだもん
145デフォルトの名無しさん
2019/08/19(月) 13:40:48.28ID:4iryI+Qn >>144
難しく考えすぎでしょ。すでにある実装を採用すればいいだけ
思想なんかは、既に実装されてる時点で問題ないということだし。
POSIXにではなくBSDに言う方が現実的というけどBSDの現状知ってる?
すでにgreadlinkとかgtarとか結局GNU版を実装しちゃってるの。(その逆は聞かない)
そういう二重開発をなくすためにも、今の実装(の一部)をPOSIXにしてしまうべきだと思うね
難しく考えすぎでしょ。すでにある実装を採用すればいいだけ
思想なんかは、既に実装されてる時点で問題ないということだし。
POSIXにではなくBSDに言う方が現実的というけどBSDの現状知ってる?
すでにgreadlinkとかgtarとか結局GNU版を実装しちゃってるの。(その逆は聞かない)
そういう二重開発をなくすためにも、今の実装(の一部)をPOSIXにしてしまうべきだと思うね
146デフォルトの名無しさん
2019/08/19(月) 13:51:36.11ID:oONnFCD4 >>145
その採用がだよ。やりとり見てみ。はいそうですねでは進んでないから
それはいらないとかふつうにあるぞ。POSIXに限らず
何言ってるの?単にBSDにGNU coreutilsのパッケージがあって、それが入ることもあるってだけだよ。gって自分で付けて気づかないの?GNU coreutilsが入っているのが嫌という人も居るようだけど
その採用がだよ。やりとり見てみ。はいそうですねでは進んでないから
それはいらないとかふつうにあるぞ。POSIXに限らず
何言ってるの?単にBSDにGNU coreutilsのパッケージがあって、それが入ることもあるってだけだよ。gって自分で付けて気づかないの?GNU coreutilsが入っているのが嫌という人も居るようだけど
147デフォルトの名無しさん
2019/08/19(月) 13:53:39.09ID:4iryI+Qn148デフォルトの名無しさん
2019/08/19(月) 14:01:04.44ID:oONnFCD4 何を言いたいのかさっぱり
BSDも標準では入ってないぞ GNU coreutils は。何かそれを必要としたパッケージがあってそれにともないだろう
パッケージは誰かが作ってそれなりに利用されるのならわりと簡単にだぞ?パッケージだからな。必要な人は入れるというだけの
BSDも標準では入ってないぞ GNU coreutils は。何かそれを必要としたパッケージがあってそれにともないだろう
パッケージは誰かが作ってそれなりに利用されるのならわりと簡単にだぞ?パッケージだからな。必要な人は入れるというだけの
149デフォルトの名無しさん
2019/08/19(月) 17:39:47.54ID:xlQPwL5+ ・POSIXに準拠することにはメリットがある
↑これは俺もそう思うけど(正しいかどうかは別にして)
・今のPOSIXでは不十分なので,規格を拡張して,各社にそれを追従するよう促すべきだ
↑これは違うと思う。POSIXの「不便さ」は「どこでも動く」ことの引き換えであることを忘れてはいけいない(ルポ風)
↑これは俺もそう思うけど(正しいかどうかは別にして)
・今のPOSIXでは不十分なので,規格を拡張して,各社にそれを追従するよう促すべきだ
↑これは違うと思う。POSIXの「不便さ」は「どこでも動く」ことの引き換えであることを忘れてはいけいない(ルポ風)
150デフォルトの名無しさん
2019/08/19(月) 17:40:43.60ID:xlQPwL5+ cat >>149 | sed -e 's/いけいない/いけない/'
151デフォルトの名無しさん
2019/08/19(月) 18:49:04.48ID:0HwI7cO5 やっぱりどこでも動くシェルスクリプトなんて幻想なんだね。
152デフォルトの名無しさん
2019/08/19(月) 19:12:44.68ID:peefgVfy Write once, Bug anywhere.
153デフォルトの名無しさん
2019/08/19(月) 19:43:03.92ID:6nSAEgtv154デフォルトの名無しさん
2019/08/19(月) 20:19:55.37ID:WiF5XT2w bashで長いシェル書いてるといつもたくさんファイルを生成してしまうんだが上手い具合に生成しなくて済む方法ってある?
155デフォルトの名無しさん
2019/08/19(月) 20:22:05.55ID:oWmB5KZ/ >>154
たくさんファイルってどういうこと?
たくさんファイルってどういうこと?
157デフォルトの名無しさん
2019/08/19(月) 20:28:19.59ID:WiF5XT2w >>155
どっかからデータをとってくる
raw_file(最初)
user_file
user_and_id_file
format_file(完成形)
めっちゃテキトーに書いたけどこんな感じで4つぐらい作られてしまう
rmで消すのって有りなのかな
どっかからデータをとってくる
raw_file(最初)
user_file
user_and_id_file
format_file(完成形)
めっちゃテキトーに書いたけどこんな感じで4つぐらい作られてしまう
rmで消すのって有りなのかな
158デフォルトの名無しさん
2019/08/19(月) 20:29:18.05ID:oWmB5KZ/ はぁ? と言われましても、
無駄なら無駄なところをなくせ、必要ならそうするしかないで終わるんだが?
それじゃ全く何もわからないよ
無駄なら無駄なところをなくせ、必要ならそうするしかないで終わるんだが?
それじゃ全く何もわからないよ
159デフォルトの名無しさん
2019/08/19(月) 20:33:15.52ID:WiF5XT2w >>156
参考になりました。ベストアンサーあげます
参考になりました。ベストアンサーあげます
160デフォルトの名無しさん
2019/08/19(月) 20:50:25.65ID:JcVwKxxm161デフォルトの名無しさん
2019/08/19(月) 20:53:38.13ID:PiISpjsD162デフォルトの名無しさん
2019/08/19(月) 20:58:54.83ID:QrnBNgWe pasteで処理の結果をくっつける方法ってありますか?
処理A、処理B、処理Cの計3つでファイルを作成せずにくっつけたいです。
処理A、処理B、処理Cの計3つでファイルを作成せずにくっつけたいです。
163デフォルトの名無しさん
2019/08/19(月) 21:02:40.84ID:WV8MsfnG Xxx <(Yyy) <(Zzz)
こんな感じのがあったような?
こんな感じのがあったような?
164デフォルトの名無しさん
2019/08/19(月) 21:03:35.55ID:PiISpjsD165デフォルトの名無しさん
2019/08/19(月) 21:03:42.78ID:peefgVfy プロセス置換でできるかな?
166デフォルトの名無しさん
2019/08/19(月) 21:04:17.45ID:PiISpjsD あ、入力元はファイルじゃないのか?
167デフォルトの名無しさん
2019/08/19(月) 21:06:17.42ID:xlQPwL5+ >>163
BashやZshに依存してもいいならこれ。
BashやZshに依存してもいいならこれ。
168デフォルトの名無しさん
2019/08/19(月) 21:08:14.71ID:PiISpjsD pasteは複数の標準入力を受け付けるみたいね
printf '%s\n' a b c d e f g | paste - - -
a b c
d e f
g
だから処理A、処理B、処理Cをそれぞれ1行ずつ
出力できるならくっつけられるね。
printf '%s\n' a b c d e f g | paste - - -
a b c
d e f
g
だから処理A、処理B、処理Cをそれぞれ1行ずつ
出力できるならくっつけられるね。
169デフォルトの名無しさん
2019/08/19(月) 21:12:53.53ID:PiISpjsD あとは処理A、処理B、処理Cの順でデータを出力するなら、
それぞれ変数に入れといて、1行ずつとりだすとか。
まあできなくはない。
それぞれ変数に入れといて、1行ずつとりだすとか。
まあできなくはない。
170デフォルトの名無しさん
2019/08/19(月) 21:26:09.66ID:PiISpjsD171デフォルトの名無しさん
2019/08/19(月) 21:32:21.04ID:R3NGICj0 >>154-159
一時ファイルとか、メモリ内ファイルとかは?
一時ファイルとか、メモリ内ファイルとかは?
172デフォルトの名無しさん
2019/08/19(月) 21:38:04.83ID:PiISpjsD >>162
あ、nlとsort使えばいけるじゃん。
(
処理Aを出力 | nl -i3 # 1, 4, 7 と行番号をつける
処理Bを出力 | nl -i3 -v2 # 2, 5, 8, と行番号をつける
処理Cを出力 | nl -i3 -v3 # 3, 6, 9, と行番号をつける
) | sort -n | paste - - - | 行番号を削除
これでできないかな?
行番号を消すのは、nlの-sで区切り記号をつけられるから、
cutかsedでやればいいかな? 1行目が1ってわかってるから、
行番号の文字数もわかるので、あとはどうにかw
あ、nlとsort使えばいけるじゃん。
(
処理Aを出力 | nl -i3 # 1, 4, 7 と行番号をつける
処理Bを出力 | nl -i3 -v2 # 2, 5, 8, と行番号をつける
処理Cを出力 | nl -i3 -v3 # 3, 6, 9, と行番号をつける
) | sort -n | paste - - - | 行番号を削除
これでできないかな?
行番号を消すのは、nlの-sで区切り記号をつけられるから、
cutかsedでやればいいかな? 1行目が1ってわかってるから、
行番号の文字数もわかるので、あとはどうにかw
173デフォルトの名無しさん
2019/08/19(月) 21:52:44.53ID:PiISpjsD こんな感じかな?
a() { printf '%s\n' a b c d e; }
b() { printf '%s\n' A B C D E; }
c() { printf '%s\n' 1 2 3 4 5; }
{
a | nl -i3 -v1 -s:
b | nl -i3 -v2 -s:
c | nl -i3 -v3 -s:
} | sort -n | cut -d: -f2- | paste - - -
出力
a A 1
b B 2
c C 3
d D 4
e E 5
a() { printf '%s\n' a b c d e; }
b() { printf '%s\n' A B C D E; }
c() { printf '%s\n' 1 2 3 4 5; }
{
a | nl -i3 -v1 -s:
b | nl -i3 -v2 -s:
c | nl -i3 -v3 -s:
} | sort -n | cut -d: -f2- | paste - - -
出力
a A 1
b B 2
c C 3
d D 4
e E 5
174デフォルトの名無しさん
2019/08/20(火) 07:40:59.29ID:Gkd3xMH4 そのsortって安定だっけ。
じゃなかったら処理結果が入れ替わるおそれない?
じゃなかったら処理結果が入れ替わるおそれない?
175デフォルトの名無しさん
2019/08/20(火) 08:07:31.90ID:JOMXhFk+176デフォルトの名無しさん
2019/08/20(火) 08:24:06.78ID:Gkd3xMH4 POSIX sortだと-s(=stable sortのs)オプションが提供されてないので
どう足掻いても安定にはならんな。
「たまたま」順番が変化しない場合もあるやもしれんが。
どう足掻いても安定にはならんな。
「たまたま」順番が変化しない場合もあるやもしれんが。
177デフォルトの名無しさん
2019/08/20(火) 08:37:08.94ID:JOMXhFk+ なんで重複しない行番号の順にソートして並びが入れ替わるんだよw
178デフォルトの名無しさん
2019/08/20(火) 12:54:26.88ID:/fB0Ptq3 >>176
「安定」の意味分かって書いてる?
「安定」の意味分かって書いてる?
179デフォルトの名無しさん
2019/08/20(火) 13:41:04.53ID:tzbk8R3g 安定の書き込みクオリティ
180デフォルトの名無しさん
2019/08/20(火) 13:47:15.01ID:/V4ccaND シェルスクリプトってテキストファイルこねくり回すくらいしかできないんだよな
181デフォルトの名無しさん
2019/08/20(火) 13:52:13.54ID:I7f/WloD それで十分ですよ
182デフォルトの名無しさん
2019/08/20(火) 17:13:37.74ID:Gkd3xMH4 バイナリファイル扱えるスクリプト言語ってある?
Pythonとか?
Pythonとか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 日本、G7への中国招待を懸念 議長国フランスに慎重な対応要請 [どどん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- 千晴におちんちん舐めてもらいたい♥
- たまにはこういうドーナッツ食いたくなるよな
- にぎにぎペニスにぎペニス♪
- 【悲報】ジャップ、日中戦争に賛成が5割弱...軍歌の音が聞こえる... [856698234]
- ブタをぶったたく
- ひまだねー
