シェルスクリプト総合 その29

■ このスレッドは過去ログ倉庫に格納されています
2018/09/22(土) 11:53:21.38ID:BBiLRgnj0
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
シェルスクリプトに関する総合スレッドです。

スレ立て時は以下の文を先頭行に加えて下さい。
後のつけ忘れ防止の為に複数行重ねて追加推奨
!extend:on:vvvvv:1000:512

全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。

前スレ
シェルスクリプト総合 その28
http://mevius.5ch.net/test/read.cgi/tech/1532397676/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
228デフォルトの名無しさん (アウアウカー Sa7b-GU/K)
垢版 |
2018/10/15(月) 15:55:57.71ID:oz1FOCTra
どうぞどうぞ
2018/10/15(月) 16:39:55.24ID:Q15q2Q7Cd
>>227
自己解決
やり方を変えることにしました
2018/10/15(月) 16:43:11.45ID:9UZy+Ppr0
どういたしまして
2018/10/15(月) 18:26:03.30ID:A4+xGAqjM
僕にも感謝して
232デフォルトの名無しさん (アウアウカー Sa7b-GU/K)
垢版 |
2018/10/15(月) 18:56:32.85ID:3C5NcaRXa
>>229
どうやることにしたの?
2018/10/15(月) 20:03:34.75ID:dTacK6h30
ssh ... [command] ができるのがわかったとかじゃないのかな
2018/10/15(月) 21:27:00.70ID:0gVRdy5i0
>>232
233の言うとおりです
opensshのマニュアル呼んだら、ファイル指定もコマンド発行方法も書いてあったので、それでやることに
あとはifとの組み合わせで頑張ります
まぁつまずいてるんだけど
2018/10/15(月) 21:32:13.05ID:E6pr56BO0
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
2018/10/18(木) 12:14:09.96ID:/ofNkRJS0
ksh、関数のオーバーライド、くせっていうかバグあるわ

(foo() { echo 1; }; foo; (foo() { echo 2; }; foo;); foo)
何度実行しても1 2 1 と表示される(想定通り)

foo() { echo 1; }; foo; (foo() { echo 2; }; foo;); foo
最初の1回は1 2 1 と表示されるが、
2回目以降は1 1 1 としか表示されない(2でオーバーライドできなくなる)
2018/10/18(木) 12:32:51.57ID:/ofNkRJS0
もう一つ。kshで関数の定義の場所でオーバーライドできない
場合があるんだが原因がよくわからない。

多分これ関連なんだろうけど
https://github.com/modernish/modernish/blob/master/libexec/modernish/cap/BUG_FNSUBSH.t
これはメインシェルの定義がある場合、サブシェルの中での定義が無視されるということだから、
サブシェルの中で定義していれば、その中のサブシェルではオーバーライドできると解釈できる
たしかに>>236はそのとおりの動きはしてる

もう一つの問題も同じなんだろうか、定義の順番を変えればうまくいくんだが
サブシェルに関しては定義の順番を変えても同じだと思うんだけどなぁ。
.コマンドを使ってるのが関係してるのかなんだこりゃって感じだ
2018/10/18(木) 12:40:28.86ID:/ofNkRJS0
もう一つの問題は、ちょっとコードが入り組んでて調べるのが面倒くさい。
なんでこれで解決したのかわかってない状況だが、今のところ動いているので
まあなにかわかったら書くよw
2018/10/18(木) 16:05:20.75ID:q7k/ngFed
初心者です、while文の質問です
このようなスクリプトがあったとします
a=0
while [ $a -le 50 ]
do
a=`expr $a +1`
echo "${a}個目
done

とやると、50個目まで表示されると思いますが、この数値が5の倍数の時だけ、echoで表示させたあとsleepを入れるようにするには、contiuneを使えばよい?
それともifでやる?
よくわからず
240デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 16:38:15.26ID:hfM3a7YWa
>>239
continue はループ内のその後の処理を飛ばすやつだからできないと思うが。

普通に if 使ってやるしかないのでは?
if [ `expr $a % 5` -eq 0 ] ; then sleep 1 ; fi
とか、done の直前に入れる。
2018/10/18(木) 17:31:05.73ID:/ofNkRJS0
>>240
> continue はループ内のその後の処理を飛ばすやつだからできないと思うが。
5の倍数以外でsleepを飛ばせばできるYO!

>>239
> とやると、50個目まで表示されると思いますが
51個目まで表示される

> a=`expr $a +1`
は a=$((a+1)) の方が良い
シェルによって実行されるから速い

俺だったらif使わないでこう書くかな
[ $(($a % 5)) = 0 ] && sleep 1
ただこの書き方は if を使った場合と完全に等価なわけじゃなくて
後続行実行時点でのexit codeが異なることがあるから使い方に注意だけど
242デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 17:40:57.72ID:hfM3a7YWa
あ。そうか。なるほど。
2018/10/18(木) 17:41:55.70ID:/ofNkRJS0
ついでだから書いておくと、
a=`expr $a +1` でも大差ないだろ?と思った人
WSLの酷さがわかるぞ

たった50回のループ、sleepを行わない状態で
a=$((a+1)) だと 約0.025秒なのに、
a=`expr $a +1` だと 約0.5秒にもなるのだ

10000回のループだと
a=$((a+1)) だと 約0.1秒のところ、
a=`expr $a +1` だと 約90秒

早くWSLのfokの遅さが解決すると良いな
2018/10/18(木) 17:43:58.54ID:/ofNkRJS0
× [ $(($a % 5)) = 0 ] && sleep 1
○ [ $((a % 5)) = 0 ] && sleep 1

書き込む前に気づいて直したと思ったんだがコピペミスったか
上でも動かないわけではない。無駄なだけ
245デフォルトの名無しさん (ワッチョイ 6a7c-fIkj)
垢版 |
2018/10/18(木) 17:56:39.61ID:uRBurQVb0
> [ $((a % 5)) = 0 ]
新旧混ぜんなw
arithmetic使うなら、そのままevaluation記法にしてしまえばいい。
((...))
あと、旧testでの数値比較は-eqを使え。
2018/10/18(木) 18:24:07.81ID:/ofNkRJS0
>>245
ん? どういうふうに書くってこと?

>>237の件、ぼや〜っとだけどわかりかけてきた気がする

スクリプトのコードが.(ドット)コマンドで評価された時点で、
関数がすでに存在している場合、その関数を使用するコードがあれば
事前にリンクされているような動きをしている

その場合サブシェルで関数を再定義しようとしてもできないんじゃないかな
だから事前にリンクできないようにeval呼び出しに変更したら
再定義された方の関数を呼び出すようになった
247デフォルトの名無しさん (ワッチョイ 6a7c-fIkj)
垢版 |
2018/10/18(木) 18:35:46.85ID:uRBurQVb0
((a % 5 == 0))&& ...
なんで一々ここまで言わんとわからんような奴が、他人の指摘しているんだろうかね。。。
-eqでの数値比較とか基本中の基本だろうに。
2018/10/18(木) 18:50:03.03ID:/ofNkRJS0
>>247

$ dash -c 'a=0; ((a % 5 == 0)) && echo ok'
dash: 1: a: not found

$ dash -c 'a=0; (($a % 5 == 0)) && echo ok'
dash: 1: 0: Permission denied

なぜかって?
その書き方はPOSIX準拠じゃないもの

https://github.com/koalaman/shellcheck/wiki/SC2039#standalone-
2018/10/18(木) 18:56:56.93ID:/ofNkRJS0
動かないコード出されて、偉そうにされても
やれやれって言うしか無いわなw
250デフォルトの名無しさん (アウアウカー Safb-nHS7)
垢版 |
2018/10/18(木) 19:33:42.29ID:9i8IzX+1a
(( )) ではなく [[ ]] では?
2018/10/18(木) 19:37:12.04ID:/ofNkRJS0
[[ ]] もPOSIX準拠ではない
2018/10/18(木) 22:39:25.80ID:3W2GDYvfa
またぽっじくすか
2018/10/19(金) 00:21:19.12ID:0zKHBU8T0
>>239だけど、奥が深いね
if使わずにもできたりするのか
はぁ、先は長そうだ、ありがとう
2018/10/19(金) 01:23:10.99ID:JmLVta5V0
cat file.txt | ( head; tail) は最高
2018/10/20(土) 02:22:05.90ID:V0y1IBp60
>>224
> parsargコマンドみたいなのを再発明したほうが早いかもね

違うもの調べてて、こういうのを見つけた。
見つけたってだけでどんなものかは調べていない

http://zentoo.hatenablog.com/entry/20110708/1310124831
> ちょっとした理由でgit-flow (https://github.com/nvie/gitflow) のソースを
> ちょっとちょっと眺めていたんだけど、内部でコマンドライン引数を
> パースするためにshflagsというツールが使われていたのでメモ。
2018/10/20(土) 06:26:18.72ID:EzXK/x1W0
>>254
おまえらなんでそんなに猫が好きなん?
2018/10/20(土) 12:30:19.19ID:o8LOHz9N0
それを疑問に思う人間に説明するのは困難だ
258デフォルトの名無しさん (オッペケ Srb3-iHQf)
垢版 |
2018/10/20(土) 12:37:11.93ID:MzLaXRRvr
猫好きてそんなに言語化しにくい複雑怪奇な感情持っとるんか?
2018/10/20(土) 12:43:08.81ID:o8LOHz9N0
例えば女をみて欲情しない人間に、なぜ欲情するのかを説明するのは難しいだろう
言葉を並べるだけなら本能だとか体の特徴なんかを言えるが、共感はされまい
つまりそれを疑問に感じる人間には、その時点ですでに納得させる言葉がないのだ
260デフォルトの名無しさん (オッペケ Srb3-iHQf)
垢版 |
2018/10/20(土) 12:48:37.62ID:MzLaXRRvr
でもそもそも説明するのが困難なのやろ?
おまえが言ったんやで
2018/10/20(土) 12:55:36.75ID:V0y1IBp60
おい、スレと無関係な話をして荒らすな
2018/10/20(土) 12:56:11.89ID:o8LOHz9N0
なぜ説明するのが困難かを説明したつもりだったんだが
2018/10/20(土) 13:01:22.08ID:V0y1IBp60
つまんねーよ。シェルスクリプトに関係ある話をしろ

ってか、>>206お願い
2018/10/20(土) 14:52:07.13ID:ZWcyeiuM0
お前がつまんねーんだよ
2018/10/20(土) 14:54:50.53ID:2nu5r9gua
なんかレス番飛んだけどなんだこれ
2018/10/20(土) 16:25:12.28ID:EzXK/x1W0
>>265
自分でそういう設定してんだろ。
ngしてますアピールうざいよ。
2018/10/20(土) 17:00:11.18ID:ZWcyeiuM0
なんか遠いレスの番号という意味じゃないの。てか、なんで噛み付いているんだか
2018/10/20(土) 17:06:13.46ID:T0X8nuYVa
ワッチョイ変わったのになんでNG効いてんだ?と思ったら課題マンだったのか
2018/10/21(日) 03:41:54.16ID:dQhyPQp/0
あるパスがディレクトリで書き込み可能かは、[ -d "$path" ] とか [ -w "$path" ] で調べられるし、
所有者が自分自身であるかは-Gや-Oで調べられますが、
自分以外が読み書き不可能であることをチェックするにはどうしたら良いですかね?
2018/10/21(日) 05:19:47.73ID:C+Apg5Hi0
ls
2018/10/21(日) 05:42:25.02ID:dQhyPQp/0
やっぱlsしかないですかね。
このフォーマットって仕様化されてるんですよね
2018/10/21(日) 06:29:17.52ID:9NX69mCX0
>>271
pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html#tag_20_73_10
2018/10/21(日) 06:34:56.07ID:dQhyPQp/0
ありがとう。だがオプション多すぎて読むのだりぃw

なんでだろ?どうもlsって解析する気にならないんだよな
人間向けのフォーマットでコンピュータが解釈するのに向いてない感じがしている
どこまでPOSIXで仕様化されてるのか、どこからが拡張なのか、オプション多すぎて(略

関係ないけど、ふと本棚を見たら
「lsを読まずにプログラマを名乗るな!」という本があったw
そういや買ったっけ(未読)
2018/10/21(日) 06:42:08.88ID:xQoMnSHc0
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html
STDOUTに記述があるんだからそうじゃね
2018/10/21(日) 06:42:50.73ID:xQoMnSHc0
あら被りすぎた。すまん
2018/10/21(日) 06:45:46.73ID:xQoMnSHc0
>>273
>>272はPOSIXの仕様。>>269,270,271の目的には
If the -l option is specified, the following information shall be written for files other than character special and block special files:

If the -l option is specified, the following information shall be written for character special and block special files:
で書いてあるフォーマットだけだけどね
2018/10/21(日) 07:33:05.64ID:dQhyPQp/0
そういや、macだとlsで

drwxr-xr-x+ や
drwxr-xr-x@ みたいに
後ろになにかくっついていることがあるな

> Implementations may add other characters to this list to represent other implementation-defined file types.
くっつけても良いってことなのか?
2018/10/21(日) 11:22:28.24ID:C+Apg5Hi0
これだからマカーは馬鹿だと言われるんだなあ...
279デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
垢版 |
2018/10/21(日) 20:00:09.31ID:0dWokXAIa
stat コマンドの出力解析した方が楽ではないか?
または find コマンドの -perm 利用してチェックして -exec でやらせたいことをやらせる。
2018/10/21(日) 20:21:13.14ID:dQhyPQp/0
>>279
そこででてくるのが、またPOSIXですよ

statはPOSIXで規定されてない
SolarisやUP-UXには存在しない
更にLinuxとMacでオプションもフォーマットもぜんぜん違う
2018/10/21(日) 22:04:44.47ID:8BH3p2hm0
標準入力の代わりにfileの内容を入力するのに、リダイレクトで
$ <file somecmd
とやる方式ってPOSIXで既定されてるっけ。
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_07_01
このへんに書いてそうなんだけど、それっぽい記述がない?
282デフォルトの名無しさん (ワッチョイ 269f-nBLa)
垢版 |
2018/10/22(月) 02:54:50.03ID:HyPH6OEy0
>>280
じゃ、find で。
ファイルのパーミッションに 066 を and した時に 0 になるやつでいいのなら
find $dir -prune ! -perm -40 ! -perm -20 ! -perm -4 ! -perm -2 -exec やらせたいこと \;
のようにすればいいのではないかな。
http://pubs.opengroup.org/onlinepubs/9699919799/ で find コマンド見てみたら -perm はあるようなので。
もし GNU の find コマンド使えるようなら -perm /mode が使えて、これは何れかのビットが立っていれば
真になるので ! -perm /66 の一つで出来ると思う。
2018/10/22(月) 03:01:30.80ID:1Kkbm3du0
GNUのfind使っていいという条件なら、GNUのlsやstatでいいじゃんw
284名無しさん@そうだ選挙に行こう! Go to vote! (アウアウウー Sa9f-L0SM)
垢版 |
2018/10/22(月) 10:18:21.67ID:8WYgXfgna
その辺はご自由に。POSIX縛りがあってもこの場合にfindも使えるってだけの話なので。ls使いたいならそうすればいい。
2018/10/22(月) 14:51:33.47ID:JUwIDQm90
>>281
これ分かる方います?
2018/10/22(月) 16:55:54.61ID:9s+yFzz3H
>>281
2.1の5で、リダイレクトの処理をしてパラメーターリストから
除去するって書いてあるのと、
6でコマンド名を第0パラメーターとして渡すって書いてるってことは、
先頭もパラメーターリストの一部と解釈できるから、
暗に、先頭にリダイレクトがあってもいいってことを表してるんでは?
2018/10/22(月) 19:08:52.43ID:WU2zxBnF6
>>286
明示はされてないのね。
でもありがとう。多分 大丈夫ということでしょう。
2018/10/22(月) 19:09:38.93ID:WU2zxBnF6
あ、ワッチョイもIDも違うけど>>285です。
2018/10/22(月) 21:35:03.82ID:oF7wf0Ce0
>>118
それはオブジェクト指向の話じゃない
C++の話だ

そもそもテンプレートやジェネリックは、型を明確にすることでバグを少なくしたり
速度を速くするためのもので、オブジェクト指向における問題点を解決するための追加機能

テンプレートやジェネリックを使うことでオブジェクト指向が不要になるのではなく
オブジェクト指向と組み合わせて使うことで問題点が改善される

テンプレートはオブジェクト指向と組み合わせずに使えたと思うが、
テンプレートの殆ど(ジェネリックは全て)はオブジェクト指向なしに使うことはできない
2018/10/22(月) 21:47:50.25ID:oF7wf0Ce0
あ、書き込まれてないと思ったら書き込む場所間違えてたのかw
2018/10/22(月) 23:23:26.53ID:oF7wf0Ce0
ただのメモ

各シェルの比較
http://hyperpolyglot.org/unix-shells
292デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
垢版 |
2018/10/23(火) 13:27:19.16ID:QwHjyvjPa
シェルというか tar コマンドの問題なんだけど、tar tvf でアーカイブに入っているファイルのタイムスタンプを秒単位まで出す方法ある?
Linux で GNU tar のmanページ見た感じではなさそうなんだけど、やはり自作するしかないなかな。
2018/10/23(火) 14:12:45.60ID:mYtscksw0
>>292
tar --full-time ...
294デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
垢版 |
2018/10/23(火) 14:38:56.39ID:QwHjyvjPa
>>293
おお!ありがとう。新しい GNU tar にあるね。
最初CentOS6で試しててわからなかった。これは GNU tar 1.23 だ。
CentOS7は GNU tar 1.26 になっててこちらでは出来るしmanページにも書いてあった。
2018/10/23(火) 15:22:22.26ID:cKF5Z2eR0
CentOS 6はそろそろサポート切れるんじゃないかしら
余計なお世話だが移行したほうがいいんでは
296デフォルトの名無しさん (アウアウウー Sa9f-L0SM)
垢版 |
2018/10/23(火) 15:35:42.08ID:QwHjyvjPa
>>295
するする。仕事でRHEL6のサーバ使っててそれの一部をテストする時に使ってただけなので。
2018/10/25(木) 13:45:54.07ID:7aRL1OkY0
すごい低レベルな質問で申し訳ないんだけど、
win用のGit-bashで.shファイルダブルクリックしたときに
DOS窓出さないで実行するのってどうすればいい?
298デフォルトの名無しさん (アウアウウー Sa5d-hDoO)
垢版 |
2018/10/25(木) 14:43:08.46ID:hw/Q19JUa
>>297
それもはやシェルかどうか関係なくてWindows固有の問題だと思うが、エクスプローラでそのファイル右クリックしてプロパティ出したらそんな感じの設定できるようになってない?
最小化した状態で実行するとか、そんなやつ。
299デフォルトの名無しさん (アウアウウー Sa5d-hDoO)
垢版 |
2018/10/25(木) 14:51:54.06ID:hw/Q19JUa
こうだ。

まずショートカット作り、そのショートカットのプロパティ出すと実行時の大きさを指定できる所があって、そこを最小化にすると実行時にタスクバーにアイコン出ているだけになる。
2018/10/25(木) 16:15:39.89ID:7aRL1OkY0
>>298
git-bash.exeだとできませんでしたが、bin/bash.exeでできました!
ありがとうございます。
2018/10/26(金) 22:15:40.17ID:ScQN6FWl0
ファイルや標準出力の行数がある数値より大きいことをできるだけ高速に確かめるにはどうすればいいだろう
最も単純で最もUNIXっぽいのは
$ test $(<file.txt wc -l) -gt $num
としてその真偽を見ることだけど
$ test $( (yes | head -n 3000000000000000000) | wc -l) -lt 300
こういうのを実行して貰えれば分かると思うがかなり時間が掛かる
俺の使ってる計算機はそこそこ良い性能(Intel Xeon x2/32GiB RAMなのだが)
それでも実行に1分強掛かった。
しかしこれは無駄だ。なぜなら結局比較する対象は300なのだから、「300行以上ある」ことが分かればいい。
なにか案ありませんかね。

思ったのはsed -n -e '300p'とかでその失敗判定を見るとかだが,これはsedコマンドの失敗の要因が他にもあるので
ちょっと不安定かなと。
302デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
垢版 |
2018/10/26(金) 23:12:31.32ID:7cGNdWT70
cで指定行読むコマンドを作ればいい
面倒なこといちいち考える必要がそもそもない
2018/10/26(金) 23:41:06.71ID:E+2rE/Ml0
>>301
headで300行読み込めば?
2018/10/27(土) 00:04:40.31ID:GbJLfo150
sed -n 300pでもええんか?
2018/10/27(土) 00:13:24.42ID:BbyQQXdF0
>>303
あーなるほど
$(<file.txt head -n $num | wc -l) -lt $num
とすればいいということですね。
2018/10/27(土) 00:29:51.71ID:4RrrP6U60
>>305
そのことを意図していったんだけど、
2回走査することになるから
300行飛ばして1行読んだほうがいいか
たしかheadで1コマンドでできたでしょ?
2018/10/27(土) 00:37:07.31ID:4RrrP6U60
あれ?できなかったか?
2018/10/27(土) 01:15:41.17ID:BbyQQXdF0
GNU headだとどうか知らないが
POSIX headだと無理
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/head.html
2018/10/27(土) 01:23:00.95ID:4RrrP6U60
シェルスクリプトでループで回しながら数えるのと
headで300行とってきて、wcで300行数えるのってどっちが速いんだろうかね
やればすぐわかるけど、やる気起きないなぁw
310デフォルトの名無しさん (ワッチョイ 5b9f-3knh)
垢版 |
2018/10/27(土) 04:24:55.28ID:QwPOuwmq0
>>309
シェルスクリプトだとインタープリタの言語みたいな動きになるので遅そうなイメージはあるな。但しうまいこと内部で最適化されれば速くなるかもね。
2018/10/27(土) 08:30:31.93ID:4RrrP6U60
>>310
いうてもループとカウントと条件分岐だけだからなぁ
内部的にはインタプリタ解釈後の状態になってるだろうし
そこでCPUは食わない気がする

でもheadでとってきてwcでカウントの部分は並列で実行できるわけで
マルチコアなら当然のことながら、シングルコアでもファイルから読み取りの方が
遅いからwcで待たされることはなさそう

どちらが速いかは微妙な所だなw
2018/10/27(土) 09:05:32.40ID:94jXB05x0
awkでいいんじゃないの
313デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
垢版 |
2018/10/27(土) 09:08:24.86ID:S4VvuAVS0
ファイルの先頭からLFの数を数えるだけのことを
ああでもこうでもないと
いちいち考えないといけないオツムのデキを疑うわ。。。
2018/10/27(土) 09:14:33.78ID:EI3TCK5cr
ループってreadのループ?
catからパイプしてwhileのreadループってどうなんだっけ
昔作ったシェルでcatしてたファイルを処理中に書き換えたけど
実行されてる処理では書き換える前の内容で処理されてたみたいだから
どこかメモリに展開されてるんじゃ
catからのパイプでプロセスが終わってるからか?
でもリダイレクトやヒアドキュメントでも同じじゃないの?
315デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
垢版 |
2018/10/27(土) 09:24:18.83ID:S4VvuAVS0
低学歴知恵遅れの思考形態、世界では
すでに用意されているコマンドを組み合わせてシェルスクリプトを書くことが
シェルスクリプトを書くことになるという決まりがあるのが
このスレみてると分かる
2018/10/27(土) 09:27:18.91ID:7MihieRw0
そういうのは上流でなんとかせい
2018/10/27(土) 09:36:35.55ID:94jXB05x0
>>314
単にバッファに入っていただけとか。カーネルに設定できるバッファサイズなバッファなんぞもしくはcatプログラムのバッファ(の方が小さいだろう、たぶん)
もしくは上書きが上書きではなくて削除して新規ファイルに保存とかの場合とか(削除してもどこぞでオープンしていたらクローズされるまでは元のはそのまま残る)、か、OSが他でオープンされていたら上書きでも同じように別に保存してるとか
2018/10/27(土) 10:00:05.77ID:4RrrP6U60
>>313
考えてるのはファイルの先頭からLFの数を数える
「効率がいい方法(コマンド)は何か」だよ

LFの数を数えることなんてわかりきったことは考えてない
それを実現する方法を考えてる

まったくキミは思慮が足りないなw
2018/10/27(土) 10:02:52.71ID:4RrrP6U60
>>314
なんの話をしているのか知らんが、readで普通に一行ずつ処理できる。
catが終わるまで待つなんてことはない
なおcatは使わない(標準入力 or ファイルから直接読めばいい)
2018/10/27(土) 10:06:05.12ID:4RrrP6U60
>>312
awkプログラマ、シェルショッカーさんこんちには(笑)
2018/10/27(土) 10:32:12.85ID:94jXB05x0
何を噛み付いているのだか。よほど気に食わないことがあるらしいなっw
2018/10/27(土) 10:38:33.23ID:5CI9IsZua
このガキのやり取りもシェルスクリプトスレの日常になりつつあるな
2018/10/27(土) 10:42:58.86ID:4RrrP6U60
この殺伐さがいいんだよ
2018/10/27(土) 10:49:54.15ID:94jXB05x0
雑談すんなとか言ってなかったかなあ、だれかはw
325デフォルトの名無しさん (ワッチョイ 1d80-SUE8)
垢版 |
2018/10/27(土) 11:01:01.29ID:S4VvuAVS0
低学歴知恵遅れのしゃべり場
2018/10/27(土) 11:02:18.35ID:94jXB05x0
自己紹介そのものじゃないのww
2018/10/27(土) 15:16:56.95ID:BbyQQXdF0
>>305
まあこれで今のところ上手くいってるのでいいです。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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