X

awkについて語るスレ $2

レス数が950を超えています。1000を超えると書き込みができなくなります。
2007/02/23(金) 23:55:42
腐っても鯛? 騏も老いては駑馬に劣る?
三人の碩学が生み出したスクリプト言語AWKについて語るスレ

◆ 前スレ
awkについて語るスレ
http://pc10.2ch.net/test/read.cgi/tech/1023556171/

◆ 関係スレ
シェルスクリプト相談室
http://pc10.2ch.net/test/read.cgi/tech/1112553783/
AWKでCGI
http://pc10.2ch.net/test/read.cgi/php/1171804314/
【sed】シェルスクリプト総合@LINUX Part2【awk】
http://pc10.2ch.net/test/read.cgi/linux/1154578200/

◆ 参考
The AWK Programming Language (Brian Kernighan):
ttp://cm.bell-labs.com/cm/cs/awkbook/index.html

GAWK (GNU Projedt):
ttp://www.gnu.org/software/gawk/
896デフォルトの名無しさん
垢版 |
2018/12/23(日) 02:59:04.54ID:quoNoaXg
886です。
親ノード毎?に保存する方法がまだわかりませんが、
明日以降考えます。
みなさん、ご協力ありがとうございました。
897デフォルトの名無しさん
垢版 |
2018/12/23(日) 08:49:07.73ID:S8HMq/6c
gawk4でとにかく速いのが良いならcで拡張関数作るのが良いかと(反則?)

flatten_array_typed関数(4.1.4はflatten_array関数)でawk_flat_array_t構造体のメンバ変数countに要素数が入りますので
要素がAWK_ARRAYなら再帰するように処理すれば出来上がり

APIの使い方は
extension\rwarray.cとか
https://www.gnu.org/software/gawk/manual/html_node/Flattening-Arrays.html#Flattening-Arraysを参考に

gawkだけでやる場合、もし配列の要素数が10万とか100万あるのなら、関数の引数を出来るだけ減らして
関数内からグローバル変数を直接参照したほうが速くなると思います
898デフォルトの名無しさん
垢版 |
2018/12/23(日) 11:20:10.63ID:qffc/3mK
もともと添え字がすべて文字列で保存する仕様というのはしってはいたが
多次元配列はaho[i,j]という形式にして工夫して使えということらしいな

awkで多次元配列なんか使ったことないから知らんかったわ

とういワケでにその形式で多次元配列をlengthでとると>>886で取得したい値になる
当然といえば当然
特定の次元の列だけのとりかたはよくわからん とれんのかコレ

 http://www.kt.rim.or.jp/~kbk/gawk-30/gawk_12.html#SEC119
 Using Numbers to Subscript Arrays

  配列について重要なのは、配列の添え字は常に 文字列として扱われるということである。
  配列の添え字に数字を使った場合、それは添え字付けに使われる前に 文字列に変換される

 http://www.kt.rim.or.jp/~kbk/gawk-30/gawk_12.html#SEC121
 Multi-dimensional Arrays

  多次元配列とは、配列要素の指定を複数の添字の並びによって行う配列である。例え ば二次元の配列は二つの添字を必要とする。
  一般的な(awkも含めた大多数の 言語では) 二次元配列の要素に対する参照は grid[x,y]このよ うに行う。 (gridは配列の名前)

  セパレータには組み込み変数SUBSEPに格納 されている値が使われる。
2018/12/23(日) 11:43:46.94ID:7N3pX2Wi
>>898
それを踏まえて>>886
> gawk4
とわざわざことわっているんじゃないの?
900デフォルトの名無しさん
垢版 |
2018/12/23(日) 22:29:12.74ID:qffc/3mK
まず入力から多次元配列を読込む処理でも作ってみるか
できるのかがよく分からん

コレがすんなりできないとコレ自体が使えるシロモノにならなそうだしな

テストデータは作ってみた
https://ideone.com/Sir0IE

awkのこの多次元配列についてほかのとこで書いてあるの読んでみると
色々と面倒なことがおきるはのは分かった

特に問題がおきそうなのは一度配列やスカラーで要素を追加すると、
その配列やスカラーを変えて上書きする場合明示的にそれを削除しないと上書きして使えない

きっとなノードを削除するときはその要素゙から辿って一番深いとこから再帰的に削除しないと残骸が残る
cのメモリリークと同じことが起きると推定される

いまいちこの多次元配列に使い道があるのかどうかが分からない
2018/12/23(日) 23:32:19.00ID:nM/PpEMV
lispが最適
awkは不適
902デフォルトの名無しさん
垢版 |
2018/12/24(月) 01:01:19.83ID:ivcUrO89
https://ideone.com/PFBwQU

どうにかして動的に配列を構成できないか調べてみたが
やりかたが分からん

>>892の質問してるのが書いた方法で
一旦多次元配列を読む込むようにはしてみた

質問してるのが欲しいといってる要素の数は
結局入力の行数と同じになる
903デフォルトの名無しさん
垢版 |
2018/12/24(月) 01:07:37.50ID:ivcUrO89
https://ideone.com/zTUFL2

switch分のcaseが1つ少なかったから追加しといた
904デフォルトの名無しさん
垢版 |
2018/12/24(月) 09:11:50.63ID:PbNokzxn
>>900
> きっとなノードを削除するときはその要素゙から辿って一番深いとこから再帰的に削除しないと残骸が残る
delete a は a[1][2] や a[3][4][5] などの子配列含む配列a全体の使用メモリをまとめて "再利用" にまわす
一部の要素を残しておきたい事情が無ければ、delete a[1][2]; delete a[3][4][5]; ... のように子配列を個別に
deleteする必要は無い

たとえば下の(2)は多次元配列bが多次元配列aの使用済みメモリを再利用するので
終了間際のメモリ使用量は(1)(2)どちらも同じになるが、(2)の delete a を消すと倍程度に増える
(1) BEGIN{for(i=1; i<=1000000; i++){a[i%10][i]=i}}
(2) BEGIN{for(i=1; i<=1000000; i++){a[i%10][i]=i} delete a; for(i=1; i<=1000000; i++){b[i%10][i]=i}}

メモリ再利用の仕組みはThe GAWK Manualには書いていないけどAharon Robbinsが↓で回答している
https://groups.google.com/forum/#!topic/comp.lang.awk/CKwoes0_63U
905デフォルトの名無しさん
垢版 |
2018/12/24(月) 15:58:51.02ID:ivcUrO89
なるほど
ありがとう

きっと再利用されるから
気にせず放置でいいのか
906デフォルトの名無しさん
垢版 |
2018/12/24(月) 17:27:46.25ID:8PLVwc4u
>>902 886です。ありがとうございます。動的とはこんな感じでしょうか?
一度作って、削除するという変な仕様ですが。
BEGIN {
a[1] = "foo";
a[2][1] = "bar";
a[2][2] = "baz";
a[3] = "qux";
a[4][1][1] = "quux";
a[4][2] = "corge";

for (i = 1; i < 5; i++) {
meta_ar_init(b, i);
clone(b[i], a);
}
}
function meta_ar_init(ar, init_num) {
ar[init_num][1] = "";
delete ar[init_num][1];
}
function clone(lhs, rhs, i) {
for (i in rhs) {
if (isarray(rhs[i])) {
lhs[i][1] = "";
delete lhs[i][1];
clone(lhs[i], rhs[i]);
} else
lhs[i] = rhs[i];
}
}
907デフォルトの名無しさん
垢版 |
2018/12/27(木) 20:01:48.39ID:pQqvXPza
よく分からんが
例えばそれで>>902の入力データなんかを読み込めたりするのか

>>903のswitchだと事前に何次元かわかってないと読み込めない

何次元になるか不明な入力データの場合
どうやれば格納できるかよくわからんんかった
908デフォルトの名無しさん
垢版 |
2018/12/27(木) 22:46:53.38ID:X7jxTwwp
>>906の「一度作って、削除する」というのは
https://www.gnu.org/software/gawk/manual/gawk.html#Arrays-of-Arrays
ここの一番下のsplitがエラー吐く例の回避策で、配列の要素を最初から配列扱いすることはできないから
予め次階層にダミー要素をぶら下げておき、本命を格納し終えたらダミーは消すって意味かな

自分で書いたらこんなんなったけど、いちおう何次元でも格納できそう
https://ideone.com/83ykKF#stdin
2019/01/01(火) 00:00:01.96ID:7rl7mk2H
2019年もawkのお世話になります
2019/02/05(火) 18:58:36.44ID:9Z2hbdGL
60くらいの教授が40年くらい前にAWKでアセンブラ作ったとか言ってたんだけど
当時に既にあったということと当時から小規模なコンパイラなら作れるくらい高性能だったことに驚いた
2019/02/05(火) 19:10:49.73ID:dIIT7BCG
アセンブラをコンパイラとは呼ばないが
912デフォルトの名無しさん
垢版 |
2019/02/06(水) 10:31:17.59ID:+qagyc5o
aho
2019/02/06(水) 13:09:33.86ID:j4QdsmCl
asort、asortiがよくわからなかったので試した結果
# a
a[5] ="a5"
a[1] ="a1"
a[3] ="a8"
# asort(a,as)
as[1] ="a1"
as[2] ="a5"
as[3] ="a8"
# asorti(a,asi)
asi[1]=1
asi[2]=3
asi[3]=5

なんだそういうことだったのかとわかった
2019/02/06(水) 17:39:23.37ID:+3VpeZVh
>>910
思わず "assembler by awk" でググって The Amazing Awk Assembler by Henry Spencer を
ダウンロードしちゃったじゃないか。
2019/02/23(土) 17:41:13.06ID:Y0E0nwid
awkでファイルがあるかどうかの判別は、どのようにしたらよいのでしょうか?

具体的にはBEGINの中で

getline a < "/dev/stdin";
fn = a".txt"

と任意のファイル名を作った後、そのファイルがあるかどうかを確認したいんです。

もしファイルがすでにあったら処理は終了、無ければ以後の処理をそのファイルにリダイレクトする、という感じです。
2019/02/24(日) 00:16:02.91ID:Cwr1i6xY
if(getline<fn!=-1)exit
とか?
2019/02/24(日) 11:45:53.93ID:FuDjIOWV
>>916
できました!ありがとうございます!!
918デフォルトの名無しさん
垢版 |
2019/03/21(木) 08:10:09.34ID:pGDO/F2C
答えが出ないなんで?

#!/usr/bin/awk -f

BEGIN{
print game(10, 24);
}


function game(coin,depth, i,j){
if(memo[coin,depth]){
return memo[coin,depth];
}
if(coin == 0){
return 0;
}
if(depth == 0){
return 1;
}
win = game(coin + 1, depth - 1);
lose = game(coin - 1, depth - 1);
memo[coin,depth] = win + lose;
}
2019/03/21(木) 09:51:18.96ID:WMaCNtBE
最後の memo[coin,depth] = win + lose はそのまま関数の戻り値として
return しなければならないが、それを忘れている。

さらに、正しい答えが返らない原因が 2 点。
関数定義の引数名間違い: i,j → win,lose。
if(depth == 0) と if(coin == 0) の判定を行う順序が逆。
920デフォルトの名無しさん
垢版 |
2019/03/21(木) 14:19:16.55ID:pGDO/F2C
>>919
ありがとうございます。
そっか。returnがいるんですね。
perlだと最後はreturn省略可能だけどawkは省略不可みたい。
あと、引数名も間違っていました。
正しい答え出ました!
2019/03/21(木) 21:25:33.68ID:ZeSQsBE1
それぐらいの処理は、Ruby で作れ!
2019/03/21(木) 23:54:47.78ID:7AyLRSvD
オーク英雄物語 〜忖度列伝〜
https://ncode.syosetu.com/n8418ff/1/ 👀
Rock54: Caution(BBR-MD5:0be20a4887bc3d3353f527d3636c44e3)
2019/04/01(月) 17:01:28.78ID:nwflCE8J
>>921
awkの方がいいときもある

installしなくていい
タスクマネージャでみているとrubyよりメモリを食わない時もある
融通の利く配列が超便利

通信、Hash、sortなど使いまくる時はrubyのほうがいいけど
924デフォルトの名無しさん
垢版 |
2019/04/01(月) 17:12:08.21ID:Tc5+6fel
いや、Perlだ。

理由
俺が慣れてるから。
2019/04/01(月) 22:48:54.89ID:0AqZLgzF
Perlはまぁ慣れ以外に使う意味はあまり見出せない。
2019/04/02(火) 04:44:16.86ID:3dIjgbOm
漏れは、Windows 10・WSL・Ubuntu 16.04 だけど、
sudo apt install ruby だけで、Ruby 2.3 が入った

2.4 以降の新しい書き方さえしなければ、動く

Perl, Python は、最初から入っているけど
2019/04/02(火) 10:00:50.55ID:USFH8Mum
>>926
死ね
2019/04/02(火) 10:29:57.68ID:egwP5Lwa
Perl脳だとdieなどと言いたがるんかね。
929デフォルトの名無しさん
垢版 |
2019/04/02(火) 12:24:56.71ID:exqjvsIl
Perl die好き
2019/04/02(火) 12:34:58.56ID:m0agfZtU
931デフォルトの名無しさん
垢版 |
2019/04/17(水) 15:16:55.69ID:bLXqfCqA
GNU AWK 5.0がリリース。8年ぶりのメジャーバージョンアップ。正規表現ライブラリが
GLIBCからGNULIBへ移行、名前空間が実装 2019年4月17日
https://www.publickey1.jp/blog/19/gnu_awk_508glibcgnulib.html

UnixやLinuxにおいてsedやgrepなどと並んでよく知られているツールの1つがawk(オーク)
です。このawkのGNUプロジェクトによる実装の最新版「GNU AWK 5.0」(gawk 5.0)の
リリースが発表されました。

2011年にリリースされたGNU AWK 4.0から8年ぶり、直前のバージョンでとして2017年10月に
リリースされた4.2.0からは約1年半ぶりとなります。

AWKはいわゆるスクリプティング言語の一種。変数や関数、制御文など基本的な構文を備え、
テキストファイルを効率的に処理できるのが特徴です。

GNU AWK 5.0の新機能としては、printfの%aおよび%Aの書式がPOSIX標準に準拠したこと、
正規表現のルーチンが、長年にわたってメンテナンスされてきたGLIBCからGNULIBに
置き換わったことなど。

また、識別子に非英語文字を使うためのドキュメント化されていなかったオプションなどは
削除され、ソースコードはC99環境が想定されるようになっています。

そして新たに名前空間が実装されています(詳細はマニュアルを参照とのこと)。
932デフォルトの名無しさん
垢版 |
2019/04/17(水) 17:19:50.38ID:fsOEjVgH
sedとawkで簡単にできることを
他の方法でやってるアホを見ると優越感に浸れるよな
2019/04/17(水) 21:27:37.50ID:Cw3S472M
5.0.0じゃなくて4.3.0でいいじゃんって更新内容だな・・・
2019/04/17(水) 23:57:17.65ID:t5VcExa0
今時っぽく定期的にメジャーバージョンアップしていく作戦?
そろそろAWKCARD印刷してみようかな…
935デフォルトの名無しさん
垢版 |
2019/04/18(木) 00:37:48.90ID:y8/6ebia
>>932
簡単な変換なのにWindowsとかでいきなりExcelでやろうとしちゃう人を見るとそこまでせんでも良いじゃないかとは思ってしまうな。
まあ日頃Windowsで事務処理的な事している人からすればそれ以上最良で分かりやすい環境はないんだろうけどな。
なんでもかんでもそれでやろうとして余計に分かりづらく複雑になってうまく行かずにハマっているのを見ると哀れに感じる。
2019/06/01(土) 01:13:44.70ID:QInzSHhj
こういう記法ができることを知らず、気づくのに数年かかった
正規表現比較のifで変数を使える、gsubなどで変数を使える

txt=”aabbcdefg1234”
x=”^” substr{$0,1,1} ”+”
if {txt 〜 x}print ”ok”

y=substr{$0,1,1}
z=substr{$0,2,1}
gsub{y,z,$0}

(半角だと書き込みエラーになるので全角に変換)
2019/06/01(土) 01:15:01.39ID:QInzSHhj
>>936
あれ変換おかしい
{} → ()
2019/06/01(土) 05:25:56.80ID:cEFw76xP
ふふふ知ってた。
2019/06/05(水) 00:27:37.11ID:/Z5C9xDG
The AWK Programming Language (の邦訳本) から入ったので知ってはいるけど、
エスケープ文字を考慮してコードを書くのが面倒なので極力避けてるな。
文字列が正規表現へ「型変換」されるときの振舞いについて、本には一応書いてある。
940デフォルトの名無しさん
垢版 |
2019/06/19(水) 04:52:26.36ID:tVNS+22r
【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
2019/06/30(日) 05:07:43.82ID:1ALBmyOB
AWKが巨大なテキストファイルを処理できないみたいな話を知ってる方いらしゃいますか。
大体1.4GiBくらいのファイルをAWKで編集しようとすると「ファイルの空きがない」みたいなエラーが出るので。
942デフォルトの名無しさん
垢版 |
2019/06/30(日) 12:11:04.21ID:QU2Ls1X6
UNIXというかまともなPIPE実装されてるOSならそんなことはないが
WINDOWSとかいうアホなOSだと出るだろうね
2019/06/30(日) 12:19:57.44ID:pDzbN/vc
「ファイルの空きがない」っていうメッセージは "No space left on device" の事?
2019/06/30(日) 15:28:11.21ID:o/HVRPYj
>>942
コマンドラインでリダイレクト使ってればそうかも知れんが
スクリプト内で出力先を指定してたらわからんぞー
2019/06/30(日) 21:02:48.49ID:1ALBmyOB
>>942
なるほど。
946デフォルトの名無しさん
垢版 |
2019/06/30(日) 21:56:09.12ID:HbSturrb
>>941
改行コードの違いにより全体が長い一行と認識されてしまい・・・なんて事はないか?

あ、でも、ファイルの空きがないってのは出力先の空き容量が足りないってことかな?
2019/07/01(月) 01:34:15.60ID:2smzn43h
>>943
そうです。
でもファイルシステムとしては全く余裕がある状態なんです。
948デフォルトの名無しさん
垢版 |
2019/07/01(月) 02:30:15.69ID:jjSXuURg
なんだろうね。作業用ファイルが作られるパーティションの空きが足りないとかかな?
2019/07/01(月) 02:35:44.08ID:KfVaWYci
64bit版か32bit版かで違わないか
1.4GBは入力で出力も同じなのかはるかに小さいのか
出力が速すぎることはないのか、ゆっくり出力するようにしたらどうか
950947
垢版 |
2019/07/01(月) 07:19:02.17ID:2smzn43h
>>948
すいません。これが原因でした。
AWKは全く悪くありませんでした。ご迷惑&&スレ汚し、大変失礼しました……。
2019/07/01(月) 07:38:04.28ID:O1pDJEnN
Ruby でも、File.read なら、ファイルの内容を、メモリ内にすべて読み込んでしまうから、
500MB 以上なら、読み込めずにエラーになるだろう

File.foreach なら、メモリ内に、1行ずつ読み込んでは捨てるから、大きいファイルでも大丈夫

まあ、RubyVM 起動時に、そのアプリが使うメモリのサイズを、指定できると思うけど。
JavaVM には、そういうオプションがある
952デフォルトの名無しさん
垢版 |
2019/07/02(火) 21:28:41.07ID:Stz7guhB
awkで dateを使ったのですが、秒数が更新されず悩んでます。仕様とかそういう情報ご存知のかた教えて
頂けないでしょうか
■ コード
BEGIN {
for( intCounter = 0; intCounter < 3; intCounter++ )
{
"date +\"%Y/%m/%d %I:%M:%S\" " | getline datTmp
print "Start:" datTmp
system("sleep 2")
}
}
END {
for( intCounter = 0; intCounter < 3; intCounter++ )
{
"date +%I:%M:%S" | getline datTmp1
print "End:" datTmp1
system("sleep 2")
}
}
■ 結果
Start:2019/07/02 09:18:36
Start:2019/07/02 09:18:36
Start:2019/07/02 09:18:36
End:09:18:42
End:09:18:42
End:09:18:42
■ 疑問
Start, End 共に最初の 1 回目のみ秒数が取れているようで、2回目からは2秒後のはずなのに、秒数が変わっていない orz..
953952
垢版 |
2019/07/02(火) 21:47:38.82ID:Stz7guhB
お騒がせしました。自己解決しました。
https://stackoverflow.com/questions/2391272/gawk-awk-piping-date-to-getline-sometimes-wont-work
closeを使う必要が有ったようです。
■ コード
BEGIN {
for( intCounter = 0; intCounter < 3; intCounter++ )
{
"date +\"%Y/%m/%d %I:%M:%S\" " | getline datTmp
print "Start:" datTmp
system("sleep 2")
close("date +\"%Y/%m/%d %I:%M:%S\" ")
}
}
END {
for( intCounter = 0; intCounter < 3; intCounter++ )
{
"date +%I:%M:%S" | getline datTmp2
print "End:" datTmp2
system("sleep 2")
close("date +%I:%M:%S")
}
}
■ 結果
Start:2019/07/02 09:44:49
Start:2019/07/02 09:44:51
Start:2019/07/02 09:44:53
End:09:44:55
End:09:44:57
End:09:44:59
2019/07/03(水) 06:22:07.32ID:IYY9eTuR
gawkなら時間関数群あるんじゃ。
2019/07/04(木) 01:05:04.08ID:vxwYTSOB
ここいいね。Web上でawkの実行とその結果が見れるサービス。
https://www.tutorialspoint.com/execute_awk_online.php
2019/07/05(金) 19:29:13.12ID:p9vBdDGq
           fi
          、Jj
           Й 
         /⌒ヽ
         l_ 0..0
          }{ l冊
        -=-v=-
        }{ 彡ミノ{
        }{ 非 }{
        匁OTO)匁
         }{ }{
         }{ }{
         及 及
957デフォルトの名無しさん
垢版 |
2019/08/05(月) 11:42:29.38ID:N86fIT/u
Windows10 のコマンドプロンプトで awk を使いたいです。
vector で検索するといろいろでてくるのですが、
これがお勧めっていうのありますでしょうか。
日本語も扱えるのがいいです。
よろしくお願いします。
2019/08/05(月) 11:44:36.72ID:MNXFY7cg
Windows 10なら、標準機能のWSL(+Ubuntu)をインストールするのが一般的
vectorとかもうあんなのいらない
959デフォルトの名無しさん
垢版 |
2019/08/05(月) 12:04:58.85ID:N86fIT/u
WSLって使ったことなかったんですけど、
ググってみたらもう Win で Linux が標準で使えるんですね。
これなら cygwin とかも、もういらないのかな。
情報どうもです。
2019/08/05(月) 12:06:14.91ID:MNXFY7cg
cygwinもいらない。遅いし互換性低いし
961デフォルトの名無しさん
垢版 |
2019/08/05(月) 12:06:57.54ID:NOA3rn3w
WSL って pro だけ?
home だったら付いてない?
msys とか入れれば解決するけど
962デフォルトの名無しさん
垢版 |
2019/08/05(月) 12:18:30.48ID:N86fIT/u
マイクロソフトもビルゲイツがいなくなって
多少は良い事もするようになったかな。
963デフォルトの名無しさん
垢版 |
2019/08/05(月) 12:33:33.70ID:LhsszH09
>>962
いや、まだ足りない。何でもかんでもWindowsの上で動くようにしているだけだしね。すると何を動かすにしてもWindowsのライセンス料が掛かる。
まあ仕方のないことではあるがな。
2019/08/05(月) 12:42:57.45ID:MNXFY7cg
WSLはhomeでも使える。WSL2も使えるようにすると発表があった。
2019/08/05(月) 12:59:49.23ID:MNXFY7cg
>>963
> 何でもかんでもWindowsの上で動くようにしているだけだしね。すると何を動かすにしてもWindowsのライセンス料が掛かる。

それがLinuxでも動くようになり、Windowsのライセンス料もかからなくなってきてるから
最近のMSの評判が抜群に上がってるんだろ
2019/08/05(月) 15:30:49.20ID:VYzH3PNA
>>962
windows育ちでないunix系を知っている今のCEOに変わってから変化し始めた
ダメな旧MS文化からunix系やandroid系に転換をはかっている
ダメだったのは前CEOバルマー
2019/08/05(月) 17:45:26.88ID:QFC6lZK5
いっそのこと UNIX のカーネルに Windows のシェルを
被せてもらいたいですね。
Mac はもうそうなってるし。
2019/08/05(月) 17:59:46.21ID:MNXFY7cg
そのわりに、MacってUNIXを全然活かせてないよな?
forkは遅いし、仮想マシン使ったほうがMacよりも速いし。
2019/08/05(月) 18:09:58.23ID:MNXFY7cg
まあ、AppleはUNIXを真似ることしかできなかったわけで
UNIXと双璧をなす独自OSを作り上げたMSと同じことをしろというのも酷な話だが、
UNIX/Linuxを取り込むなら、WSLと同じ仕組みで十分な気がする。

あとAppleが運が悪かったのは、Linuxがここまで普及すると予測できなかったことかな
BSD系を採用しちゃったので、Linuxとコマンド体系が微妙に変わってしまった。
標準でUnixコマンドが搭載されてるにも関わらず、サードパーティのHomebrewを使って
Linux互換(GNU版)のコマンドに置き換える人も多いし。
2019/08/05(月) 20:09:15.04ID:oBMYP5f0
> UNIXと双璧をなす独自OSを作り上げたMS
ゴミをでっち上げ、OSとかよく解らない池沼層に売っただけ。
971デフォルトの名無しさん
垢版 |
2019/08/05(月) 20:51:07.86ID:LhsszH09
MSはOSというよりはUIを作った感じだな。
2019/08/05(月) 21:05:19.12ID:MNXFY7cg
>>970
嫉妬すんなよw 事実は受け入れようぜw
2019/08/05(月) 21:12:10.12ID:O6CFE/yb
マクドナルドのハンバーガー並に普及した
2019/08/05(月) 22:10:04.48ID:o5dspg/Y
macOSの前身のNEXTSTEPは技術的には絶賛されてた
macOSは中身ほぼNEXTSTEPで見た目をモダンにしただけだ
975デフォルトの名無しさん
垢版 |
2019/08/06(火) 14:52:58.06ID:SvihPrAV
マルチユーザーマルチスレッドωωω
2019/08/06(火) 17:42:44.33ID:9obbnMlM
> macOSの前身のNEXTSTEPは技術的には絶賛されてた

でもUNIXの割にforkが遅いんだよな
cygwin使ってるのか?って思っちゃうぐらい。
977デフォルトの名無しさん
垢版 |
2019/08/06(火) 20:48:47.73ID:ePqW8mte
スレッドも遅いの?
2019/08/07(水) 00:04:17.07ID:NEAc+E18
>>976
forkが速くて称賛されてた訳じゃないからな…
ちなみにforkの速度は今時そんなに重要じゃないぞ
もしそれで困ってるならスレッドを使うとか事前にプロセスを起動して置くなりすればいい
2019/08/07(水) 00:33:23.13ID:WK8NJ3/V
でもそうするとWSLで十分じゃね?という話になる
2019/08/07(水) 01:24:29.79ID:NRK0ob+d
新手のスレ埋め立てかw
981デフォルトの名無しさん
垢版 |
2019/08/07(水) 04:38:27.64ID:/UJIAec/
>>969
そんなこと気にする人ってどれくらい居るんだろう
CPUですら68、PowerPC、x86と変えてきて
OSは独自、BSDと来たもんだ
多くの人は中身を気にせず使ってるのに

自分は元マカーだけど今は1台も持ってない
でもファッションでMacBookいいカナと思うよ
仕事はITのエンジニアで商用UNIX使ってるけど
コマンドなんてどうでもいいわ
好きなところにログインすれば言いだけなんだから
2019/08/08(木) 01:24:30.39ID:X/CTiqlR
| awk -F: '! /BINARY/ {print $1}'\

正規表現無しの簡潔な部分はperl -lane より短くて最高
2020/08/02(日) 11:03:40.06ID:mglN/rTr
>>982
短かいのが正義!とは思わないけど、
perlと違ってSUSで定義されてるのがありがたいね。
984デフォルトの名無しさん
垢版 |
2020/08/02(日) 17:25:58.24ID:IlYSPDQE
ファッションでというと、写真撮影しているオシャレな感じのスタジオの受け付けにマックがあったのだが画面を見るとWindowsだったというのを見たことがあるな。
エミュでWindows動かしてそこで業務用のソフト動かして受け付け業務に使っているということだが、客から見るとディスプレイの裏側が主に見えるのでAppleマークが見えると。
2020/08/02(日) 19:24:52.35ID:mglN/rTr
>>984
誤爆?
986デフォルトの名無しさん
垢版 |
2020/08/03(月) 02:35:57.38ID:iGTWfWuc
>>985
>>981
987デフォルトの名無しさん
垢版 |
2020/08/03(月) 09:51:55.82ID:3aFKjSal
Aho
2020/08/03(月) 10:16:40.93ID:ZKD4yCvc
AWmae no Kachan debeso
989デフォルトの名無しさん
垢版 |
2020/08/03(月) 20:08:52.49ID:iGTWfWuc
awk の a は本当に Aho の略(人名)
2020/08/10(月) 14:00:21.38ID:l5zwQhnu
>>982 >>983
何事もないように書いてるけど実は1年空いてる
991デフォルトの名無しさん
垢版 |
2020/08/10(月) 14:01:04.64ID:l5zwQhnu
即レスも大概だが亀レスも大概やな!
2020/08/10(月) 22:16:10.09ID:DZgybkpe
AWesome Kame res
2020/08/13(木) 10:26:07.54ID:uwSNr/lm
真のawkerは多くを語らない。
awkを語らない…ナンチャッテ!
994デフォルトの名無しさん
垢版 |
2020/08/13(木) 16:09:43.86ID:GqR68DDy
は?
995デフォルトの名無しさん
垢版 |
2020/08/14(金) 13:41:25.37ID:H4TUvcZb
【審議中】
    ∧,,∧  ∧,,∧
 ∧ (´・ω・) (・ω・`) ∧∧
( ´・ω) U) ( つと ノ(ω・` )
| U (  ´・) (・`  ) と ノ
 u-u (l    ) (   ノu-u
     `u-u'. `u-u'
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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