シェルスクリプト総合 ..
807:名無しさん@お腹いっぱい。
18/06/27 03:13:21.88 .net
>>774-775
. | .genre_name, (.list[] | .name, (.hinshu_list[] | .hinshu, .yen))
URLリンク(stedolan.github.io) URLリンク(stedolan.github.io) 見つつ URLリンク(jqplay.org) で試した
jq初めての俺でもすぐできたじゃねーか
まじめにやれ
808:名無しさん@お腹いっぱい。
18/06/27 07:24:03.91 .net
>>777
どうもありがとうございます!
カッコを使うといいんですね
809:名無しさん@お腹いっぱい。
18/06/28 16:24:57.87 .net
dashで動くシェルスクリプトってPOSIX準拠のシェルスクリプトだと思って問題ない?
810:名無しさん@お腹いっぱい。
18/06/28 17:11:46.11 .net
そいつから呼ぶコマンドもPOSIXじゃないとな。
811:名無しさん@お腹いっぱい。
18/06/29 00:29:23.70 .net
dashはPOSIX準拠である
だからPOSIX準拠のコードはdashで期待どおり動く
だけどdash専用のコードはPOSIX準拠ではない
812:名無しさん@お腹いっぱい。
18/06/29 01:00:02.18 .net
kshのposixモードがかな。POSIX仕様の元となった自負があるだろうからposixモードもちゃんとしてそう
813:名無しさん@お腹いっぱい。
18/06/30 22:10:41.02 .net
あの,すごく初歩的なことだと思うのですが,
Excelなどのように隣のセルの値を参照して現在のセルの値を計算するという手法を
シェルスクリプトで行うにはどうすればいいでしょうか。
具体的には,参照した値をaとして,(1-sin^2(a))/2^aを計算したいです。
Excelだと,A列に値を入力していき,B1セルに「(1-(SIN(A1))^2)/2^A1」と入力した後ドラッグすればいいのですが……。
814:名無しさん@お腹いっぱい。
18/06/30 22:52:18.06 .net
a=値
echo "(1-s($a)^2)/2^$a" | bc -l
とか?
815:名無しさん@お腹いっぱい。
18/07/01 20:12:26.02 .net
cat <<. | xargs -I @ echo (1-s(@)^2)/2^@ | bc -l
3
44
-6
.
こんなのでどう?
816:名無しさん@お腹いっぱい。
18/07/02 14:00:06.28 .net
cat と echo と print の違いが分からない
あと、print と printfの違いも
教えて
817:名無しさん@お腹いっぱい。
18/07/02 14:00:38.56 .net
less と moreも
818:名無しさん@お腹いっぱい。
18/07/02 14:07:32.55 .net
manすりゃいいんじゃないの
819:名無しさん@お腹いっぱい。
18/07/02 14:15:59.23 .net
cat と echo,printf は全然違う。主に出力するソースが(ゆえにパイプで入力受ける受けないとなり?)
echo と printf は、書式が指定できるかというか、コマンド由来とC由来かな
printって?awk内のならprintはechoのようなもんかな(Ubuntuには print がコマンドであるけど Mailcap とかナニそれな普通じゃないのだな)
820:名無しさん@お腹いっぱい。
18/07/02 14:19:26.23 .net
ググったらechoは改行されてしまうけどprintfは自分で\nしないと改行されないってあった
821:名無しさん@お腹いっぱい。
18/07/02 14:23:46.00 .net
それらの違いが分からないのは使ってないからだろ
使ってないなら知る必要もないし知ろうとも思わない
自作自演かな?
822:名無しさん@お腹いっぱい。
18/07/02 14:26:27.85 .net
>>791
宿題
823:名無しさん@お腹いっぱい。
18/07/02 14:27:23.78 .net
コマンド由来とC由来ゆうてるやんw
printf(1) は printf(3) と同じと思えば不思議ではないだろう。echo も -n で改行しないようにもできるけどイレギュラー、コマンド由来だからな
>>791
まあ、なんの目的で聞いてるのかさっぱりわからんくはあるな。なんの自作自演なのかさっぱりだけど
824:名無しさん@お腹いっぱい。
18/07/02 14:27:58.46 .net
>>792
宿題かああ。程度が低いな。高校でとかか?
825:名無しさん@お腹いっぱい。
18/07/02 14:28:13.36 .net
>>792
あぁ…
826:名無しさん@お腹いっぱい。
18/07/02 14:39:06.49 .net
>コマンド由来
コマンドはつねに改行されるの?
827:名無しさん@お腹いっぱい。
18/07/02 14:40:31.96 .net
あと、printfのfって何?
f付けたのはcが最初?
fって?
828:名無しさん@お腹いっぱい。
18/07/02 14:44:50.94 .net
少しは自分で調べろよ
829:名無しさん@お腹いっぱい。
18/07/02 14:47:13.07 .net
調べたから改行の事分かったんだけど?
830:名無しさん@お腹いっぱい。
18/07/02 14:47:50.56 .net
もっと自分で調べろよ
831:名無しさん@お腹いっぱい。
18/07/02 14:49:35.35 .net
じゃぁfだけヒント教えて
832:名無しさん@お腹いっぱい。
18/07/02 14:50:22.47 .net
それな
833:名無しさん@お腹いっぱい。
18/07/02 14:50:43.52 .net
>>796,797
コマンドで何か出力するのに「改行しない」方が少ないだろうという。echo "Hello"が改行しなかったら
834:プロンプトが続いてとか。改行した方がその機会が多いので省けるだろう f = フォーマット。printfはCが起源じゃないのかなあ。の前の何かの言語ではprintがあっただろうな(どういうのか知らんけど) 聞く姿勢が小学生低学年並みだな。そろそろ>>798の言うとおり
835:名無しさん@お腹いっぱい。
18/07/02 14:55:17.35 .net
>>803
どうもありがとうございました
836:名無しさん@お腹いっぱい。
18/07/02 15:22:33.69 .net
礼儀正しいな
少し見直したw
837:名無しさん@お腹いっぱい。
18/07/02 15:24:56.72 .net
manとinfoどっち使ってる?
infoは文中から別のページに飛べるから便利そうだけどウェブブラウザのように戻る進むボタンがあるわけでも無いし全部文字だけだから現在位置が分からなくなるからmanがいいと思うんだけどどう?
838:名無しさん@お腹いっぱい。
18/07/02 15:25:43.12 .net
なんか最近ほんとこういうアンケートみたいなの増えたな
どっかから流れてきたか?
839:名無しさん@お腹いっぱい。
18/07/02 15:27:19.76 .net
この質問は乾燥機かせてほしいだけだから
840:名無しさん@お腹いっぱい。
18/07/02 15:29:11.19 .net
UNIX板だからmanだな
841:名無しさん@お腹いっぱい。
18/07/02 15:31:13.31 .net
何を乾燥させたいのかしばらく悩んだ
842:名無しさん@お腹いっぱい。
18/07/02 18:41:01.45 .net
「乾燥機貸して」ってアンジャッシュのネタにあったなそういや
843:名無しさん@お腹いっぱい。
18/07/02 19:09:02.32 .net
man manて口で言うと恥ずかしいからinfo
844:名無しさん@お腹いっぱい。
18/07/02 19:35:17.38 .net
rcsのco(1)を
845:名無しさん@お腹いっぱい。
18/07/02 21:56:08.50 .net
tinfo
846:名無しさん@お腹いっぱい。
18/07/02 22:32:14.11 .net
そのあたりのネタはもう聞き飽きた
847:名無しさん@お腹いっぱい。
18/07/03 00:21:24.80 .net
ディレクトリの中の拡張子がm2tsのファイル全てをtsselectというコマンドに投げてその標準出力をひとつのファイルに追記で書き込みたいんですが、その際、ファイル名も一緒に書き込みたいです。
どうやってファイル名を取得するんでしょうか?
$ tsselect *.m2ts > ana.log
848:名無しさん@お腹いっぱい。
18/07/03 00:43:49.80 .net
1行で書けなかったので、複数行に分けてfor分を使いました。
849:名無しさん@お腹いっぱい。
18/07/03 01:01:05.23 .net
こんなん?
for i in *.m2ts; do echo $i >>ana.log; tsselect $i >>ana.log; done
850:名無しさん@お腹いっぱい。
18/07/04 07:39:11.34 .net
近頃のどこか(このスレかも)で,
「fgrepはgrepより遅い」というような話を耳にしたんですが,ほんとうですか?
手元のgrepで試したところ,ほとんど有意な差はありませんでしたが……。
851:名無しさん@お腹いっぱい。
18/07/04 08:10:45.64 .net
それぞれ独自バイナリだった昔の話な。
あとgrepよりegrepの方が速かったんで、
今でも手はegrepを優先して打っちゃうけどな。
852:名無しさん@お腹いっぱい。
18/07/04 08:43:22.98 .net
いや独自バイナリだった頃もfgrepの方が速かったような。
grepだけ非決定性オートマトンで遅い的な。
853:名無しさん@お腹いっぱい。
18/07/04 15:23:44.48 .net
ファイルの一括リネームで
$ find . -name "*X*" | while read F; do mv $F ${F/X/Y}; done
だとXXXがYXXになるんですけどYYYにするには繰り返さなきゃいけないんですかね?
854:名無しさん@お腹いっぱい。
18/07/04 16:18:50.48 .net
If pattern begins with /, all matches of pattern are replaced with string.
855:名無しさん@お腹いっぱい。
18/07/04 16:22:26.78 .net
日本語で書いてくれないとわかりません
できれば修正したコマンドを書いてください
856:名無しさん@お腹いっぱい。
18/07/04 16:25:40.84 .net
お断りします
857:名無しさん@お腹いっぱい。
18/07/04 16:27:15.37 .net
断る理由とは?
858:名無しさん@お腹いっぱい。
18/07/04 16:29:57.71 .net
ひな鳥に餌を上げるのはひな鳥がかわいいからだ
なんかこのひな鳥うざいって思ったら餌は与えない
859:名無しさん@お腹いっぱい。
18/07/04 16:31:49.67 .net
可愛く思われる質問の仕方でもあったんですかね
860:名無しさん@お腹いっぱい。
18/07/04 16:34:15.63 .net
とりあえず「sh 変数展開」あたりでggってからここに来
861:い それで分からなきゃどこかの暇人が餌与えてくれるまでずっと待ってな
862:名無しさん@お腹いっぱい。
18/07/04 16:35:48.08 .net
ありがとうございました
863:名無しさん@お腹いっぱい。
18/07/04 16:54:10.40 .net
もう来んなよ
864:名無しさん@お腹いっぱい。
18/07/04 18:24:31.29 .net
すみません
ワードとかに出来る~$で始まるファイルを一括で消したいのですがどうすればいいですか。
find ./ -name "~$*" -exec rm -rf {} \;
これだと上手くいかないです。
find ./ -name "~\$*" -exec rm -rf {} \;
エスケープしてもダメです。
find ./ -name "~*" -exec rm -rf {} \;
これだと上手くいきますが$も指定するためにはどうすればいいですか。
865:名無しさん@お腹いっぱい。
18/07/04 18:27:42.16 .net
シングルクォート使っとけばぁ
866:名無しさん@お腹いっぱい。
18/07/04 18:30:53.83 .net
>>833
上手くいかないです
$ find . -name ~'$'*
Unknown user: $*.
$ find . -name "~'$'*"
Illegal variable name.
$ find . -name ~"$"*
Illegal variable name.
$ find . -name '~"$"*'
何も出力されない
867:名無しさん@お腹いっぱい。
18/07/04 18:41:11.43 .net
自己解決
bashにしたら\で普通にエスケープできました
find . -name "~\$*"
なんでcsh使ってたんだろ
868:名無しさん@お腹いっぱい。
18/07/04 18:44:18.71 .net
csh使ってたならプロンプト$にすんなよ紛らわしい
869:名無しさん@お腹いっぱい。
18/07/04 18:46:56.81 .net
cshだと%でしたねすみません
% find . -name "~\$*"
870:名無しさん@お腹いっぱい。
18/07/04 20:48:13.14 .net
なんで-rつけてんねん
871:名無しさん@お腹いっぱい。
18/07/04 20:56:00.21 .net
ファイルフォルダ関係なく消したいからフォルダがないとわかっていても付けてる
872:名無しさん@お腹いっぱい。
18/07/04 21:12:02.88 .net
\; より + かな。forkの遅いCygwinでは特に。
873:名無しさん@お腹いっぱい。
18/07/04 21:21:14.22 .net
最後以外の改行を削除する単純で可搬な方法を探しています。
私が現在使っている方法は
cat <<. | tr -d '\n' | printf '%s\n' "$(cat)"
a
bbb
cc
.
です。これは可搬性は抜群ですが、冗長すぎると感じています。
できれば一つのコマンド(sedとか?)で済ませたいです。よろしくお願いします。
874:名無しさん@お腹いっぱい。
18/07/04 21:32:09.95 .net
awkで
875:名無しさん@お腹いっぱい。
18/07/04 21:34:23.01 .net
フォルダっつーかディレクトリ
876:名無しさん@お腹いっぱい。
18/07/04 21:37:25.99 .net
同じだろ
877:名無しさん@お腹いっぱい。
18/07/04 21:40:52.56 .net
>>841
sed ':l;N;s/\n//;bl'
とかかな。// を /,/ にすると、1行CSVに出来る。
878:名無しさん@お腹いっぱい。
18/07/04 22:22:07.40 .net
>>845
ありがとうございます!
すごいですね……。:lってラベル付けでしたっけ。
879:名無しさん@お腹いっぱい。
18/07/04 23:00:04.93 .net
>>841
cat <<. | { tr -d '\n'; echo; }
a
bbb
cc
.
880:名無しさん@お腹いっぱい。
18/07/05 09:36:25.04 .net
Mac付属のsedじゃうまく行かなかった、ってお呼びじゃないか
最近のBSD sedはどうかわからないけど
881:名無しさん@お腹いっぱい。
18/07/05 10:23:41.12 .net
>>848
え? そうなの?
OS Xを持ってないので知らんが Busyboxでも行けるくらいの可搬性はあるぜ?
全部POSIXで規定されてる命令だし。
882:名無しさん@お腹いっぱい。
18/07/05 12:53:17.75 .net
macOSだけでなくBSDでだめっぽい。BSDでだめというか、GNU sedでなら動くか
883:名無しさん@お腹いっぱい。
18/07/05 14:18:26.92 .net
主にパターンスペースに対して処理した直後にどうするってとこの違いかな。他ではBSDでもmacOSとOpenBSDでは行を処理しなかった場合どうするがちょっと動作が違ったり、いろいろ鬼門だなsedは
sed '$!{H;d;};${H;g;s/\n//g;}'
で、いちおう、sedもGNU sedものようだけど、ゴテっとはしてんな
884:名無しさん@お腹いっぱい。
18/07/05 14:50:09.34 .net
>>845も結局改行を削除しているだけ&最後の改行はsedの勝手に付けるだけなので、>>847の方がシンプルでこっちの方がって感じだな
885:名無しさん@お腹いっぱい。
18/07/05 15:36:04.46 .net
>>845のMacやBSD向け変種でけた
sed -e :l -e 'N;s/\n//;$p;bl'
886:名無しさん@お腹いっぱい。
18/07/05 15:51:48.45 .net
おおっ
ラベルを別にすれば/しなきゃなのか
$はそこに入れるのか、なるほど
GNU sedではそれだと.
887:..オプションで変えられるかな くせが強いw
888:名無しさん@お腹いっぱい。
18/07/05 17:34:11.18 .net
教訓。移植性を重視するならsedで変なことするな。普通の正規表現だけ使え
889:名無しさん@お腹いっぱい。
18/07/05 18:25:50.29 .net
昔はもっと酷かったんだろうな #移植性
sedだけじゃなくてgrepとかも。
890:名無しさん@お腹いっぱい。
18/07/05 18:33:28.39 .net
>>856
昔は一つしかなかったから移植性よかったよ。
GNUが台無しにした。
891:名無しさん@お腹いっぱい。
18/07/05 18:41:45.18 .net
ぐぬぅ
892:名無しさん@お腹いっぱい。
18/07/05 22:10:39.00 .net
sed で可搬性を考えると、セミコロンで分ける方法はちょっとあやしいから、
愚直に -e で分けるしか無いのかも知れない、短く書けないけどw
それはさておき、sed の「無限ループに N を入れる」って、趣があると思うんだよね。
C で「ファイルを while の条件文で fgets() が EOF になるまで読み込む処理」に近いというか。
893:名無しさん@お腹いっぱい。
18/07/05 22:32:39.96 .net
>>855
>普通の正規表現だけ使え
というより、一行単位サイクルで処理しろかな
894:名無しさん@お腹いっぱい。
18/07/05 23:00:24.55 .net
>>859
溜めに溜めて溜め込んでってイメージしかないなw
そのwhile〜fgets〜で言うなら、中にreallocでどんどこ的な
実際どうなんだろと65Mのファイルで「ちょっと」試したら、使用メモリは増えない(??)けど終わらんぞw
895:名無しさん@お腹いっぱい。
18/07/06 00:57:10.67 .net
bashのプロセス置換なんですけど、最初のプロセス置換が/dev/fd/63に固定(?)されているのはなにか理由があるんですかね。
bash-4.4$ eval echo $(yes '<(echo) ' | head -n 63)
とやったら/dev/fd/63からデクリメントされていって/dev/fd/5→/dev/fd/3→/dev/fd/64
という謎の変化を経てインクリメントされていくという……。
これ仕様ですかね。
896:名無しさん@お腹いっぱい。
18/07/07 16:45:13.41 .net
仕様です
63は昔は大きい数字だったのですが
最近は小さくなってしまった
897:名無しさん@お腹いっぱい。
18/07/07 19:05:22.41 .net
数千行のCSVの値を一個一個指定の条件に沿っているかチェックするにはシェルスクリプトでも出来ますかね?
参考書教えて頂けたら嬉しいです。
それともこういうのは他のスクリプトの方が適してたりしますか?
perlも使える環境ではあります。
898:名無しさん@お腹いっぱい。
18/07/07 19:24:54.18 .net
>>864
そのチェックが他の行の参照を含まなくて、shellでできるかという質問にawkやsedも含まれているのなら、できる
というか、excelでやったりしないし、最近はpythonでやることが多い
899:名無しさん@お腹いっぱい。
18/07/07 20:21:55.89 .net
指定の条件によるな。CSVの項目も数値や文字列だけだったらシェルスクリプトだけでもできるだろう
900:名無しさん@お腹いっぱい。
18/07/07 20:52:55.66 .net
ああ、文字列の中のフィールドセパレータ(,)をフィールドセパレータとして除外というのはしないか。awkも同じかな。やってできないこともないだろうけどめんどくさいな
perlはcsv処理するモジュールを入れてだっけ、pythonは最初から入っているよな
901:名無しさん@お腹いっぱい。
18/07/07 21:04:50.61 .net
それ以前にCSVのフォーマットによると思う
改行とかカンマとかダブルクォーテーションを含むとかをきちんとやりだすとシェルだけでもできるだろうけどやりたくない
902:名無しさん@お腹いっぱい。
18/07/07 23:07:51.61 .net
またCSV嵐が来てんのか
903:名無しさん@お腹いっぱい。
18/07/07 23:12:15.86 .net
カンマ入っている場合には "" もしくは '' で囲わなければならないから、それはシェルスクリプトにとっても都合がいい、
IFS=',' fields=($raw)
で簡単にと思ったがそう甘くはなかった。最近流行りのevalでなんとかだとしても、$とかまた別の問題があるしなあ
904:名無しさん@お腹いっぱい。
18/07/07 23:14:30.65 .net
>>869
別にあれとは違うだろうにw 単にCSVだからって拒
905:否反応示しすぎ
906:名無しさん@お腹いっぱい。
18/07/07 23:47:30.31 .net
皆さんお答えありがとうございます。
出来るけど面倒だという感じですね。
PHP使いたいけど仕様上ダメみたいなんですよね。。。
後にメンテナンスが面倒くさそう
907:名無しさん@お腹いっぱい。
18/07/07 23:50:19.59 .net
>>867
残念ながらpythonは入ってなかったです。DBサーバーなんで
908:名無しさん@お腹いっぱい。
18/07/08 00:37:11.05 .net
>>873
perlで高機能な(?)Text::CSVを入れればだけど、それすらなら、
URLリンク(t2aki.doncha.net)
なんぞの数行のをコピペってでもかな。後はperlスレだな
909:名無しさん@お腹いっぱい。
18/07/09 08:36:49.76 .net
>>869
いいえ、また "お前" が来てるんですよ
910:名無しさん@お腹いっぱい。
18/07/09 09:05:14.05 .net
>>872
上とかけあってperl/python/rubyのどれかを入れさせれもらった方がいいと思う。
あるいはjava VMがインストールされてるなら、そっち使ってもシェルよりは楽。
911:名無しさん@お腹いっぱい。
18/07/09 13:02:45.84 .net
素直にCで書けばw
912:名無しさん@お腹いっぱい。
18/07/09 15:13:46.00 .net
1990年代には確かにこういうプログラムもCで書いてたが、今では はやらんよ。
スクリプト言語とかJava VM系言語とかでCSVライブラリ呼ぶように書くのが普通。
もっと低レイヤの処理ならCも使うけど、業務システムにCを使うってのは、
開発効率が悪いせいで、ほぼ亡びた。
913:名無しさん@お腹いっぱい。
18/07/09 19:00:09.14 .net
compgenによる補完候補の絞り込みですが
bashでは正常に動作するもののzshでは絞り込まれません。
なぜでしょう?
# bash 4.4.19 on Ubuntu 18.04
$ compgen -W "aaa bbb ccc" a
aaa
# zsh 5.5.1 on Ubuntu 18.04
% compgen -W "aaa bbb ccc" a
aaa
bbb
ccc
.zshrcでは
autoload -U +X compinit && compinit
autoload -U +X bashcompinit && bashcompinit
してます
914:名無しさん@お腹いっぱい。
18/07/09 22:19:36.10 .net
>>878
すでに入ってるLL使うならわかるが、JavaVM入れるくらいならCでいだろ。
915:名無しさん@お腹いっぱい。
18/07/10 08:36:39.48 .net
>>880
>>876は「java VMがインストールされてるなら」って書いてあるじゃろ。
つまりCSV処理のためにjava VM入れるんじゃなくて既に入ってるならって話。
入ってないなら交渉してスクリプト言語入れる方を推奨だな。
エンタープライズ系は静的型検査が欲しいので相変わらずjava VMな言語が強いのよ。
916:名無しさん@お腹いっぱい。
18/07/15 05:45:07.54 .net
シェルスクリプトでwebpackみたいに結合して1ファイルにしてくれるものとか
babelみたいにトランスパイルすることで言語を拡張するものって無いかな
917:名無しさん@お腹いっぱい。
18/07/15 13:28:22.06 .net
>>882
シェルアーカイブ形式とか?
file.sharという形で,ファイル後半に(圧縮した)バイナリーファイル,前半(というかヘッダ)に展開用シェルスクリプトとインストールスクリプトを書いておく)
最近のソフトウェアだとVMWare Horizon ClientsのLinux向けインストーラーがその形式だった。
918:名無しさん@お腹いっぱい。
18/07/16 09:08:44.64 .net
>>883
別にバイナリファイルを動かそうって話じゃないよ
単にくっつけてくれればいいだけ
919:名無しさん@お腹いっぱい。
18/07/16 11:20:08.69 .net
>>884
それがshar
920:名無しさん@お腹いっぱい。
18/07/17 14:15:20.69 .net
>>885
だからぜんぜん違う
webpackみたいに1ファイルに結合するって話をしてる
結合しても結合する前と同じように動く
すこしはsharについて調べてきたら?
921:名無しさん@お腹いっぱい。
18/07/17 14:17:28.78 .net
shar知らない人のために説明しておくと、
これは単なる自己解凍形式の圧縮ファイル形式に過
922:ャない
923:名無しさん@お腹いっぱい。
18/07/17 14:31:39.62 .net
それよりwebpackとやらについて説明しておくべきだったろ
聞き方が悪い
924:名無しさん@お腹いっぱい。
18/07/17 14:59:08.62 .net
名前出てるんだから調べればいいだけだろ
925:名無しさん@お腹いっぱい。
18/07/17 15:01:52.39 .net
なんで聞く側が偉そうなんだよって話だろ
926:名無しさん@お腹いっぱい。
18/07/17 16:41:05.27 .net
どう使いたいかとかわからんのにな
>>887って言ってるけど、得られるのは自分でそれを使ってダイレクトにも頑張ればできる範囲だし
927:名無しさん@お腹いっぱい。
18/07/17 18:43:00.23 .net
webpackはCのプリプロセッサのincludeみたいなやつだよ
928:名無しさん@お腹いっぱい。
18/07/17 19:48:43.74 .net
バンドルじゃないの。macOSのバンドルのようなのを単一ファイルでの
単にincludeだったらシェルスクリプトにcatでくっつければええやん。目的は単一のファイルにしたいだけなんだから
バンドルなんだからバンドルをハンドルするヤツが必要じゃないの。んなのはshar使って自分で作ればってとこじゃね
929:名無しさん@お腹いっぱい。
18/07/18 07:15:49.95 .net
webpackとかbabelとか覚えたてのキーワード並べてみたかったんでしょ
そんなのが必要になる状況がクソなんだがなw
930:名無しさん@お腹いっぱい。
18/07/18 10:45:31.69 .net
>>891
> >>887って言ってるけど、得られるのは自分でそれを使ってダイレクトにも頑張ればできる範囲だし
自分で頑張ればできるって話なら、ファイル結合なんだからcatでもできるよ?
自分で頑張ればいいだけ。結合されても大丈夫なようにコードを書く必要があるけどな
その頑張るのが面倒だからツール使うんだろう?
ちなみにsharなんていらない。だってこれ目的を満たすためのツールじゃないから
自分でcatで頑張る+圧縮もしたいなーって思った時にオプションで使えるかもしれないツール
931:名無しさん@お腹いっぱい。
18/07/18 10:47:00.38 .net
>>894
単一のファイルで何千行も書きたいの?
932:名無しさん@お腹いっぱい。
18/07/18 10:48:08.70 .net
ちなみにsharの問題は展開しないと使えないって所
ルータのような書き込み回数に制限があるシステムでは致命的
933:名無しさん@お腹いっぱい。
18/07/18 10:48:51.53 .net
あと展開のためのコマンドが入ってない可能性もあるしな
ファイル結合するだけなら、外部のコマンドにも依存しない
934:名無しさん@お腹いっぱい。
18/07/18 12:29:11.73 .net
シェルスクリプトは実行可能なままファイル結合する必要性があんまりないってこと
そんなのとかトランスパイルとかが必要になるJavaScriptを指して、クソだなって言われてるんじゃない?
935:名無しさん@お腹いっぱい。
18/07/18 14:24:18.43 .net
てゆうかそれ以前に、そんな長いプログラムをシェルスクリプトで書いちゃいかんやろ。
他の言語を使うべき。
JavaScriptくらい高級な言語ならアリだけど。
936:名無しさん@お腹いっぱい。
18/07/18 19:30:47.19 .net
ディレクトリ A の中のファイルを全部
ディレクトリ B の中の同名のファイルと diff を撮りたいんですけどどうすればいいですか
xarg で1つの引き数を渡す方法しかわからないのでおねがいします
937:名無しさん@お腹いっぱい。
18/07/18 19:32:58.08 .net
diff -r A B
でいいのでは?
938:名無しさん@お腹いっぱい。
18/07/18 20:29:52.99 .net
少しはggるとかしてからここに恋や
939:名無しさん@お腹いっぱい。
18/07/18 21:00:07.83 .net
その前にmanすれ
940:名無しさん@お腹いっぱい。
18/07/18 21:33:29.76 .net
システムのスクリプトにも参考になるものがたくさんあるよね。zgrepとかzdiffとか
linuxだけどlddがシェルスクリプトだったのには驚いた
941:名無しさん@お腹いっぱい。
18/07/18 21:51:54.45 .net
bashのHISTTIMEFORMATを設定した環境だと
sshログアウトしてもbgプロセス消えないみたいなんだが
なんでなん?
942:名無しさん@お腹いっぱい。
18/07/18 22:33:43.46 .net
設定してなくてもsshログアウトしてもbgプロセス消えないけど、うちでは
他の設定じゃね
943:名無しさん@お腹いっぱい。
18/07/18 23:31:51.58 .net
うーむ
会社の環境だとその設定の有無で変わったんだけど
今vmでcentのminimal立てたら設定なしにbgプロセス生きてた
何か勘違いしてるのか
944:名無しさん@お腹いっぱい。
18/07/19 00:16:48.11 .net
URLリンク(serverfault.com)
だって。ちょい昔からデフォで子プロセスに
945:HUP送らなくなってるんだなあ。OSやディストリによってデフォが違うだろうけど huponexitオンにして、HISTTIMEFORMATを設定してもbgプロセスは消えるねえ
946:名無しさん@お腹いっぱい。
18/07/19 09:21:29.33 .net
case文で,Bash特有の高速化オプションとかありませんかね。
947:名無しさん@お腹いっぱい。
18/07/19 10:02:38.02 .net
>>910
高速化できるんならオプションじゃなく最初からそうしてると思うが、
さらに、高速化が必要なほど遅いcaee文とは?
948:名無しさん@お腹いっぱい。
18/07/19 10:34:16.62 .net
>>902
Aにあるファイル名だけ比較したいんです
Bのなかにはほかにもファイルがあったりするので
diff A/$f B/$f
とか場合によっては
diff A/$f B/*/$f みたいなことがしたかったのです…
ls なり find なりの出力ファイル名を変数に取り出すのってやっぱり難しいんですね
諦めます
レスありがとうございました
949:名無しさん@お腹いっぱい。
18/07/19 11:14:05.74 .net
お題としてはちょっと楽しめると思うけど、諦めちゃうのか
950:名無しさん@お腹いっぱい。
18/07/19 11:19:41.98 .net
find A -type fして、それぞれbasenameとって、find B -name filename -exec hogeってかんじかな。
B側で何度もfindするのを減らしたいけど、キャッシュされればそれほど負荷じゃないか。
951:名無しさん@お腹いっぱい。
18/07/19 12:11:39.09 .net
diffの話ついでに
(GNU) diffでディレクトリごと比較したときに、一方のディレクトリにのみあるファイルを無視するオプションってある?
diff -r /dirA /dirB | grep -v 'にのみ存在'
とやればまあ大抵の場合解決するんだけども、たまたまあるファイルの変更箇所に「にのみ存在」っていう文があった時に
困るので、できればオプションで解決したい。
952:名無しさん@お腹いっぱい。
18/07/19 12:28:48.82 .net
LANG=Cで^Onlyにマッチさせてはじく
953:名無しさん@お腹いっぱい。
18/07/19 12:35:37.30 .net
diffの出力って行頭の文字が重要なのに、
これを無視した日本語ロケール作者は反省するべき。
954:名無しさん@お腹いっぱい。
18/07/19 12:53:00.49 .net
結果に対してsedで…ってのはさすがに無駄だな
955:名無しさん@お腹いっぱい。
18/07/19 12:57:00.83 .net
>>916
ああなるほど。
diffの出力結果では行頭は変化を表わすところだから
その行頭を除けばいいね。
956:名無しさん@お腹いっぱい。
18/07/19 15:19:36.24 .net
詳しい解説サンクス
957:名無しさん@お腹いっぱい。
18/07/19 20:13:49.97 .net
>>909
サンクス
俺の勘違いだったっぽい
958:名無しさん@お腹いっぱい。
18/07/20 01:50:52.37 .net
>>900
> てゆうかそれ以前に、そんな長いプログラムをシェルスクリプトで書いちゃいかんやろ。
行数で使う言語を決めるなや
シェルスクリプトは、コマンドの連携処理を一番シンプルに書くことができる言語
シェルスクリプトが適している問題を、長いからという理由で他の言語を使うともっと長くなる
なぜ非効率な言語を使うのか?
959:名無しさん@お腹いっぱい。
18/07/20 02:03:28.48 .net
はいはい
960:名無しさん@お腹いっぱい。
18/07/20 06:54:58.07 .net
この引用符…あっ(察し
961:名無しさん@お腹いっぱい。
18/07/20 07:21:43.92 .net
引用符?
962:名無しさん@お腹いっぱい。
18/07/20 12:12:45.33 .net
>>922
まさにシェルスクリプトがプログラム間連携のための言語だからだよ。
1000行以上にも及ぶ複雑なプログラム間連携処理を
シェルスクリプトで書く状況ってのは
モジュール分割に失敗してる可能性がきわめて高い。
100行くらいの単体でも十分に使えるシェルスクリプトが10個ならば問題ないが。
シェルスクリプトは現代的プログラミング言語の持つ数々の抽象化機能を
欠いていて大規模プログラミングに向かないことは常に意識するべき。
963:名無しさん@お腹いっぱい。
18/07/20 16:50:00.03 .net
仕事でならな。個人的なのでもそういう学習習得意欲がないんだったら馬の耳に念仏かと
964:名無しさん@お腹いっぱい。
18/07/20 20:11:37.10 .net
ケンカはやめて(><)
965:名無しさん@お腹いっぱい。
18/07/21 02:15:31.20 .net
二人をとめて \(^o^)/
966:名無しさん@お腹いっぱい。
18/07/21 02:44:08.71 .net
私だ
967:名無しさん@お腹いっぱい。
18/07/21 09:20:03.54 .net
あえて不向き
968:なことをやるのは好きだよ
969:名無しさん@お腹いっぱい。
18/07/21 13:29:23.62 .net
>>926
> 1000行以上にも及ぶ複雑なプログラム間連携処理を
> シェルスクリプトで書く状況ってのは
> モジュール分割に失敗してる可能性がきわめて高い。
だからシェルスクリプトでモジュール分割するんでしょ?
970:名無しさん@お腹いっぱい。
18/07/21 13:30:12.48 .net
>>931
外部コマンドの呼び出しが多数存在する場合、
シェルスクリプトを使うのが向いてる
971:名無しさん@お腹いっぱい。
18/07/21 15:15:10.19 .net
>>933
外部コマンド呼び出しは敗北と同義よ!
漢なら全て内蔵コマンドで処理をせい!
972:名無しさん@お腹いっぱい。
18/07/21 15:36:08.22 .net
>>932
できてるならそんな話題になってないな
973:名無しさん@お腹いっぱい。
18/07/21 16:05:41.70 .net
>>935
普通に . (source)を使用するだけだけど?
974:名無しさん@お腹いっぱい。
18/07/21 16:08:19.12 .net
>>934
内部コマンドだけで処理できるなら
普通の言語のほうが良いよ
外部コマンドの連携に強いシェルスクリプトは
外部コマンドを呼び出すために使うもの
逆に普通の言語だと外部コマンドの呼び出しは面倒なんだ。
975:名無しさん@お腹いっぱい。
18/07/21 16:16:33.64 .net
そろそろ板違い
976:名無しさん@お腹いっぱい。
18/07/21 16:30:52.91 .net
>>936
そういうのもできてるなら話題になってないって言ってるんだけど
できてるって、言語的にできるできないじゃないよ
>>938
板違いってか本題から外れすぎだな
977:名無しさん@お腹いっぱい。
18/07/22 19:37:39.33 .net
>>934
includeやimportも禁止な
978:名無しさん@お腹いっぱい。
18/07/22 22:44:37.34 .net
やっぱ次のスレからワッチョイ付きにしようね
979:名無しさん@お腹いっぱい。
18/07/22 23:49:40.49 .net
>>939
だからモジュール分割は . で出来てるから話題になってないってことでしょ?
980:名無しさん@お腹いっぱい。
18/07/23 01:44:04.51 .net
この掲示板ってワッチョイないのでは…
というかidもなかった
981:名無しさん@お腹いっぱい。
18/07/23 01:57:54.18 .net
使えないのかもしかして
982:名無しさん@お腹いっぱい。
18/07/23 02:50:48.89 .net
掲示板ごとの設定だからね
983:名無しさん@お腹いっぱい。
18/07/23 03:47:58.52 .net
じゃあもうこの板捨てるか?
Linux板にでも移動すりゃいいでしょ
984:名無しさん@お腹いっぱい。
18/07/23 04:20:40.19 .net
ワンチャンある
最近精神年齢キッズが多すぎるしな
985:名無しさん@お腹いっぱい。
18/07/23 11:29:23.13 .net
test
986:名無しさん@お腹いっぱい。
18/07/23 11:56:50.52 .net
false
987:名無しさん@お腹いっぱい。
18/07/23 20:31:02.18 .net
>>946
OSの話じゃないから向こうでやってもいいかもね
988:名無しさん@お腹いっぱい。
18/07/23 20:36:06.85 .net
あっ、でも向こうだと動かすOSがLInux前提になってしまうのか
989:名無しさん@お腹いっぱい。
18/07/23 21:56:56.76 .net
プログラム板にすれば?
990:名無しさん@お腹いっぱい。
18/07/23 22:23:40.05 .net
するならそっちだな
991:名無しさん@お腹いっぱい。
18/07/23 22:28:36.47 .net
ム板に賛成する
992:名無しさん@お腹いっぱい。
18/07/23 22:46:21.28 .net
ム板にしましょう
993:名無しさん@お腹いっぱい。
18/07/23 22:48:33.03 .net
バッチ、パワシェのスレがム板にあるから不自然じゃないよね
994:名無しさん@お腹いっぱい。
18/07/24 01:25:43.39 .net
賛成だ
しかしシェルスクリプトがunixにいられなくなるってのもなんかすごいな
995:名無しさん@お腹いっぱい。
18/07/24 01:37:47.14 .net
俺も賛成だわ
996:名無しさん@お腹いっぱい。
18/07/24 01:43:21.92 .net
まあUnixもそれだけ多くの人に知られてきたってことじゃない?
もちろんキチガイは不要だけども。
997:名無しさん@お腹いっぱい。
18/07/24 06:02:37.30 .net
テンプレは同じでいいな
もし嫌ならそいつが新しいの考えろ
998:名無しさん@お腹いっぱい。
18/07/24 11:06:17.93 .net
とりあえず立てました。
テンプレを書き込もうとしたら長すぎと怒られたので、分割するついでにちょっと改変しました。
スレリンク(tech板)
999:名無しさん@お腹いっぱい。
18/07/24 11:25:29.69 .net
IDだけか?
ワッチョイいれるんじゃないのか
1000:961
18/07/24 11:43:21.78 .net
>>962
実はワッチョイを提案したのは俺なんだけど
あんまり賛同者がいないようだし
勝手にやるのもどうかなと思ったんだわ。
今はID板でやって
それでも荒れるようであればワッチョイ付けるっていう方針でいいかなと思ってる
1001:名無しさん@お腹いっぱい。
18/07/24 11:51:50.17 .net
>>963
俺はワッチョイも含めて賛成してたけど、まぁそれでいいか
ざっと厶板の他のスレみた感じワッチョイまで採用してるスレほとんどないみたいだし、あっちでもあまり使わない文化なのかもしれん
1002:、どうなんだろ
1003:名無しさん@お腹いっぱい。
18/07/24 11:53:47.82 .net
ヘタレすぐる
1004:名無しさん@お腹いっぱい。
18/07/24 12:31:44.59 .net
プログラム板移動とか計画通りすぎるwww
1005:名無しさん@お腹いっぱい。
18/07/24 12:32:21.76 .net
どうせならIPアドレス表示まですればいいのに
攻撃してやんよ
1006:名無しさん@お腹いっぱい。
18/07/24 12:41:26.67 .net
プログラム板という修羅の国に移動か
1007:961
18/07/24 12:54:08.96 .net
プログラム板ってここと違って保守しなきゃいけないよね
誰かどのくらいで落ちるか分かる人います?
1008:名無しさん@お腹いっぱい。
18/07/24 12:54:54.13 .net
20
1009:名無しさん@お腹いっぱい。
18/07/24 12:55:43.39 .net
あぁ時間か
どうだったっけな、さすがに覚えてない
20レスすれば当面落ちないとだけしか
1010:名無しさん@お腹いっぱい。
18/07/24 13:29:33.13 .net
先日lispスレ立てたけど、4レスのまま全然落ちる気配ないよ。
1011:名無しさん@お腹いっぱい。
18/07/24 20:36:12.16 .net
>>963
その段階的なやり方で良いと思う
スレ立て乙!!
1012:名無しさん@お腹いっぱい。
18/07/25 04:22:56.20 .net
UNIX板伝統のシェルスクスレもム板行きかあ
UNIX板に限らず、専門板って過疎ってるところ多いから、統廃合してほしいな
1013:名無しさん@お腹いっぱい。
18/07/25 15:06:43.63 .net
シェルスクリプトはもはやUNIXだけのものじゃなくなったからなぁ。
クロスプラットフォームが当たり前になって、
OS別のマターというのもだいぶ限られてきたね。
1014:名無しさん@お腹いっぱい。
18/07/25 16:55:26.81 .net
UNIX板の中でシェルスクリプト総合スレが一番、というか唯一勢いがあるんだが、
これなくなると凄まじい限界集落になるな…
Vim/Emacs/TeXあたりもソフトウエア板あたりなんか行ったら、もう…(´;ω;`)
1015:名無しさん@お腹いっぱい。
18/07/25 18:05:53.09 .net
せめてIDが出る板だったらよかったのにね…
1016:名無しさん@お腹いっぱい。
18/07/25 18:31:00.38 .net
まぁ言っても仕方ない
変わらない環境なんざないさ
1017:名無しさん@お腹いっぱい。
18/07/25 20:33:48.37 .net
WindowsではWSLでシェルスクリプトが動く
だけどWSL環境なんだよなぁ
Windows標準でbusyboxとか採用してくれればいいのに
バッチファイルの代わりとして使えるんだが
1018:名無しさん@お腹いっぱい。
18/07/25 21:09:31.29 .net
>>979
どんなことにつかいたいの?
1019:名無しさん@お腹いっぱい。
18/07/25 21:12:51.81 .net
バッチの意味不明なsyntaxと貧相なコマンド類は発狂しそうになるけど、パワシェではいかんの?
パワシェ使ったことないけど、さすがにまともに設計されてるんだろ
1020:名無しさん@お腹いっぱい。
18/07/25 22:21:31.92 .net
PowerShellは、普段使いのシェルとしては使えない
1021:名無しさん@お腹いっぱい。
18/07/25 23:38:49.24 .net
Powershellは高機能なんだろうけど、高機能すぎて、あれこれ調べているうちに疲れた
結果として、Powershellの機能を呼び出すバッチファイルが出来上がってしまった
1022:名無しさん@お腹いっぱい。
18/07/26 05:51:18.22 .net
>>980
WindowsでもLinuxでも動くスクリプトの作成
busyboxがあればシェルと基本的なコマンドは手に入るから
あとは特定のアプリのWindowsバイナリ版を入れるだけで
WindowsでもLinuxでもMacでも使えるスクリプトが作れる
cygwinやmsysもあるけど、Windowsに標準搭載してほしい
最低限のことはできるようになる。
>>981
PowerShellはコマンド体型違うから
1023:名無しさん@お腹いっぱい。
18/07/27 11:09:39.45 .net
>>984
太ってるの?
1024:名無しさん@お腹いっぱい。
18/07/27 11:11:30.73 .net
>>984
cygwinのdllと起動batを持ち歩くといいよ
どこでもsh動く
1025:名無しさん@お腹いっぱい。
18/07/27 21:15:51.75 .net
>>986
いつのまにか感染してました、で会社をクビになるんですね。
1026:名無しさん@お腹いっぱい。
18/08/01 17:27:03.04 .net
>>986
Windows標準でbusyboxとか採用してって話なのに
cygwinを持ち出されても、
そんなのが必要になるから、Windows標準で採用してって言ってるんだよ
で終わる
1027:名無しさん@お腹いっぱい。
18/08/02 01:46:48.23 .net
>>988
SFU や WSL の流れからして、Busybox 相当の標準搭載も需要も無いと思いますよ。
必要ならば S
1028:ysinternals 等の TechNet フォーラムに参加して要望を出してみては。
1029:名無しさん@お腹いっぱい。
18/08/02 04:05:27.78 .net
>>989
需要がないのになんで次から次へと出てくるの?
1030:名無しさん@お腹いっぱい。
18/08/02 04:15:34.43 .net
もうすぐみんなとお別れなの(´;ω;`)
1031:名無しさん@お腹いっぱい。
18/08/02 05:22:46.59 .net
次スレ
シェルスクリプト総合 その28
スレリンク(unix板)
1032:名無しさん@お腹いっぱい。
18/08/02 06:31:33.06 .net
>>992
たぶん善意からだと思うが、すでに>>961
この板とはお別れ
1033:名無しさん@お腹いっぱい。
18/08/02 08:08:24.46 .net
悪意だろ
1034:名無しさん@お腹いっぱい。
18/08/02 08:24:36.20 .net
そう先に思うのはお前自身が腐ってるからだろう
1035:名無しさん@お腹いっぱい。
18/08/02 09:08:24.13 .net
埋め
1036:名無しさん@お腹いっぱい。
18/08/02 09:08:47.19 .net
埋め
1037:名無しさん@お腹いっぱい。
18/08/02 09:09:28.02 .net
次スレこちら
スレリンク(tech板)
1038:名無しさん@お腹いっぱい。
18/08/02 09:09:44.23 .net
埋め
1039:名無しさん@お腹いっぱい。
18/08/02 09:09:52.51 .net
お前らあばよ
1040:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 90日 15時間 15分 29秒
1041:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
508日前に更新/258 KB
担当:undef