UNIXプログラミング質問すれ Part10

レス数が900を超えています。1000を超えると表示できなくなるよ。
2011/04/18(月) 17:06:36.77
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド 

前スレ 
Part9 http://hibari.2ch.net/test/read.cgi/tech/1205795434/
Part8 http://pc11.2ch.net/test/read.cgi/tech/1147946176/ ;
Part7 http://pc8.2ch.net/test/read.cgi/tech/1127373405/ ;
Part6 http://pc8.2ch.net/test/read.cgi/tech/1116908090/ ;
Part5 http://pc8.2ch.net/test/read.cgi/tech/1105723117/ ;
Part4 http://pc5.2ch.net/test/read.cgi/tech/1095843584/ ;
Part3 http://pc5.2ch.net/test/read.cgi/tech/1085930894/ ;
Part2 http://pc5.2ch.net/test/read.cgi/tech/1055110889/ ;
Part1 http://pc2.2ch.net/tech/kako/992/992057422.html ;


Part3のミラー 
http://makimo.to/2ch/pc5_tech/1085/1085930894.html ;
Part2のミラー 
http://makimo.to/2ch/pc5_tech/1055/1055110889.html ;
2015/12/01(火) 13:55:37.34ID:wfTLHpyu
可能か、否かの意味では可能って意味ならm4使ってhtmlやpdfを作るのも楽しいかも知れん・・・・・・。
2015/12/02(水) 00:30:25.26ID:4qQZZbn5
現実的にはDITAかな。
「ハイクオリティな出版」を求めるなら組版のチューニングで
相当頑張らないといけないけど。
2015/12/02(水) 19:07:25.39ID:s2q3U9h2
>>854
抱いたか? 良さそうですな
2015/12/05(土) 12:45:00.11ID:AWNlkBec
>>852
さてはやったことないなw
PSですべて書くのは非効率。プロセッサ自体をPSで書く必要もない。
PSは飽くまで出力言語として使うだけであって 他のお手軽/お好みのscript言語で
書いたscriptにPSを吐かせるのが ここにいるUNIXersには普通のやりかただよ
2015/12/05(土) 12:49:48.80ID:oCbOGloR
Pandocを採用したよっ
2015/12/05(土) 15:31:50.30ID:3X0n/q/1
>>856
やったことはあるでよ。
動的計画法じゃなくてfirst-fitで箱を詰めてく感じにしたけど。

> PSですべて書くのは非効率。プロセッサ自体をPSで書く必要もない。
> PSは飽くまで出力言語として使うだけであって 他のお手軽/お好みのscript言語で
> 書いたscriptにPSを吐かせるのが ここにいるUNIXersには普通のやりかただよ
完全に同意するよ。
LaTeX以外で、htmlやpdfなんかに変換できて(つまり何らかの出力として得ることが出来て)、
ハイクオリティな出版も可能で、文法が簡単で、
それ自体が文書プロセッサにもなってる言語としてPostScriptを挙げたって話だよ。
生のPostScriptを使いたくない?perlに吐かせりゃ良いんじゃない?
2015/12/17(木) 19:46:55.27ID:DR+j++tI
Linuxの64ビット事情、どうなってる?
2015/12/17(木) 22:21:50.96ID:RFQK/sQs
質問が雑すぎ

ARMなどの他のアーキテクチャのバイナリや、
システムそのものもVirtualMachine介さずに動作するから
64/32bit間の差なんてそれを動かすためのライブラリで
HDDの容量食うのを気にするぐらい
2015/12/17(木) 22:41:12.38ID:ORM8WttR
片山にマジレスw
2015/12/18(金) 19:03:33.33ID:mbvyIjbK
ほんそれな
2015/12/18(金) 20:29:31.39ID:9aF9cvEF
>>859
sizeof(time_t) == 8
です
2016/01/15(金) 19:04:43.93ID:kPzcSoAF
open(2)について
詳解UNIXプログラミングではfcntl.hをインクルードすることになっていますが
ぐぐった限りではsys/types.h, sys/stat.hもインクルードしなければならないようです
どちらが正しいのでしょうか
2016/01/16(土) 17:10:40.00ID:T83PzPld
>>864
http://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html
2016/01/16(土) 17:40:09.91ID:cHljheUy
>>865
なるほど変わったんですね
ありがとうございます
867sage
垢版 |
2016/03/27(日) 21:54:03.49ID:w5ZDFKAh
仕事に関係する関連知識の取得のためにFreeBSDのNetwork周りのソースコードを読み始めたのですが、
bpfドライバのコードで躓きました。一応、いろいろググってみたのですが、、明確な回答を得ることができない次第です。

以下の関数bpf_buffer_append_bytesで利用されていないbpf_d構造体が引数として存在します。

void
bpf_buffer_append_bytes(struct bpf_d *d, caddr_t buf, u_int offset,
void *src, u_int len)
{
u_char *src_bytes;

src_bytes = (u_char *)src;
bcopy(src_bytes, buf + offset, len);
}

一例として、bpf_buffer_append_byteを例に出しましたが色々なとこで、利用しない引数を持つ関数や
マクロを確認しているのですが、どのような意図を狙っているか確認したいです。

想像している意図としては
1.他の*nixとの互換性のため
2.今後拡張していく際に利用していない引数が使われる予定である。
3.テストメソッドを作成する際にこの引数を利用する

となりますが、実際プログラマーとして勤めている方はこのような利用しない引数を取る関数を設計する際に
どのような狙いを持って作成しますか?

一般論レベルでも構わないので回答いただけると幸いです。

以上
よろしくお願いいたします。
2016/03/27(日) 22:33:57.38ID:xC2rcFta
FreeBSDのスレで聞いて見たら
2016/03/27(日) 22:46:10.15ID:BZ0vZXVN
他のドライバと共通化の柵とか
2016/03/27(日) 23:02:59.94ID:xC2rcFta
ただのユーティリティ関数だわな
2016/03/27(日) 23:28:03.24ID:X+SL8bpO
MFCでもそうだけど、利用しない引数は、コメントアウトしているのが普通

func(/* 引数 */)

まあ、ライブラリを作っていない人は、気にしなくてもよい
2016/03/27(日) 23:29:33.36ID:xC2rcFta
MFCw
2016/03/28(月) 01:12:00.27ID:d9u310OB
マジ適当に書くけど

https://svnweb.freebsd.org/base/head/sys/net/bpf_buffer.h?revision=235746&;view=co
http://www.sage-p.com/process/cool.htm

bpf_buffer.h だけを見ると COOL かそれに似たようなことがやりたいんじゃないだろうか?
2016/03/28(月) 01:27:41.39ID:WGFAAxFb
POSIXなどの規格で、API仕様や標準ライブラリ関数が決まっていて、変えられないのかも
2016/03/28(月) 10:50:14.90ID:/+vK8YAf
>>867
自分なら2かなあ
そのstruct bpf_dみたいにほぼ全部の関数で使われるものは
エンハンスで参照するようになるかもしれないし、渡しておいて損はない
2016/03/28(月) 11:40:23.53ID:+gzizviZ
この程度の奴がカーネルを嬲っていいのかw
877867
垢版 |
2016/03/29(火) 00:26:43.12ID:7osLNwaa
ご連絡遅くなり申し訳ありません。
867です。
みなさん回答ありがとうございました。
みなさんの回答でなんとなくイメージがついてきました。

>>868さん
すれ違いでしたでしょうか?
内部アーキテクチャに近いところはFreeBSD関連のスレッドで確認するようにいたします。

>>869,870,873さん
みなさんのアドバイスはほぼ同様の見解に見えました。
確かに関数ポインタ利用の場合、引数は統一しないといけないですよね。
関数ポインタという頭が無かったのですごく勉強になりました。if.cなどさらに上位を読み進めていく上でコール元を確認し、関数ポインタのためかどうか確認していきたいと思います。

>>871さん
これを調べる上でコンパイラによっては、利用しない引数であることを明示する拡張があることも判明しました。コメントアウトしていただければどれだけ楽だったことか。
ライブラリー作成者以外は気にしなくても良いというお言葉心強いです。
わからないことがあってもとりあえず、読み進めていく勇気をいただきました。

>> 874さん
別のマクロでも使われない引数を見ており、それはまさしく他の*nixでは利用するものでした。OSによって実装がここまで違うのかという視点を持てたのはすごく有意義な経験でした。何かに詰まった際には同名の関数が他のOSに存在しないのか確認することにします。

>>875さん
今後、自分でプログラムを書くときには参考にさせていただきます。普段、そこまで高い視点で自分が書くプログラムの設計はしないので勉強になりました。

>>876さん
叱咤をいただきありがとうございます。空気を読まず、これからも粘り強くコードを読んでいこうと思います。
嬲るというほど、自分の手になじむ日が来るか想像がつきませんがこの程度のレベルと言われない程度に成長していくよう頑張ります。また、僕の発言で気分を害されたようでしたら申し訳ありませんでした。

最後に、みなさん色々なご意見ありがとうございました。
これ以上の質問はすれ違いにもなりそうなので、自分自身で試行錯誤したいと思います。
878デフォルトの名無しさん
垢版 |
2016/04/02(土) 12:00:52.43ID:thGUj6UI
>>867
thisだろ
2016/04/09(土) 15:38:46.81ID:1rUso06b
sedとbashを使って、特定のフォルダ内のファイル名とファイルの中身を
一括文字列置換したいんだが、どうやればいいんだろうか?
2016/04/10(日) 09:08:21.05ID:GJqGP9+Q
>>879
sedのネタ使うならls -1の出力をパイプで食わせて加工でbashスクリプトにしてbashに食わせるのが楽じゃないの?
でもオススメするのはpython,perl,rubyなんかで処理だと思うよ。
めちゃ古いシステムでpythonとか入ってないよ!っていうならawkでって選択肢もアリ。
2016/04/10(日) 10:25:23.85ID:i82mq8B4
荒らしにかまうなよ。そのうち自己解決するよw
882デフォルトの名無しさん
垢版 |
2016/05/01(日) 16:11:13.46ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
14
2016/05/06(金) 03:11:17.13ID:FS8HTadE
ページサイズ取得について
sysconf()の引数として
_SC_PAGESIZE
_SC_PAGE_SIZE
の両方とも利用できるようです
これらはどちらを使うのが正規なのでしょうか?
884デフォルトの名無しさん
垢版 |
2016/06/24(金) 10:36:57.87ID:QDx4C0nH
ソニーPS3の「LinuxなどのOSをインストールする機能」を削除したため
http://i.gzn.jp/img/2016/06/22/sony-ps3-linux/00_m.jpg
http://gigazine.net/news/20160622-sony-ps3-linux/
ユーザー約1000万人に対して賠償金を支払うことに
885デフォルトの名無しさん
垢版 |
2016/08/19(金) 22:41:43.98ID:Zxguo5e6
ぎょええええええ

http://goo.gl/RwsbST

http://goo.gl/rPZnK3
2016/08/20(土) 15:02:14.83ID:OZEoChm6
怖くて踏めない
887デフォルトの名無しさん
垢版 |
2016/08/27(土) 17:34:18.10ID:yOz8vjvK
>>886
これで飛び先分かるでしょ。

http://goo.gl/RwsbST+
http://goo.gl/rPZnK3+
2016/08/27(土) 19:02:29.97ID:6tGwOPx0
やめて><
2016/09/01(木) 16:04:40.21ID:FGUItcE5
>>886
タダのアフィ稼ぎエロサイトリンクだ
グロも罠(強いVirus)も無い
2017/09/05(火) 14:50:56.93ID:Ol0Fklqi
「残っていたSolaris関連の従業員をほぼ全員レイオフした(中略)
レイオフが事実であれば完全に開発終了(中略)
SUN時代からSPARC/Solarisを推進してきたJohn Fowler氏の退社も報道されていた」

Oracle、Solaris関連の従業員をレイオフか | スラド
https://srad.jp/story/17/09/05/0456243/
2017年09月05日 14時34分
2017/09/06(水) 12:00:01.81ID:DOMpq9nC
まだいたのかω
892デフォルトの名無しさん
垢版 |
2017/11/15(水) 21:56:22.87ID:9k4pRhSA
ncursesw使ってるんですけど
mvaddstr(0, 0, "aあb");
move(0, 0);
ここでRIGHTキーを押すとカーソルが「あ」に移動しますが
もう一回押すとカーソルがbに移動せず「あ」の位置のままです。
これは「あ」がx座標の1と2を占領してるからカーソルが動いてないように見えるんですよね。
見たまんまカーソルキーを動かすにはどうやればいいですか?
2017/11/16(木) 10:31:50.24ID:PDiU2NGN
forkしてjncursesを作ってpush
2018/04/12(木) 09:41:03.28ID:Zzp9N4Tt
UNIX初心者です。

ksh環境にてシェルスクリプトを作っています。

./(スクリプト)20180401
上記コマンド実行時、引数に指定した年月日をyyyy/mm/dd、yy.mm.ddの形式に変換して変数に格納したいです。

使用するコマンド等お解りの方、ご教授お願い致します。
895デフォルトの名無しさん
垢版 |
2018/04/12(木) 11:16:25.66ID:BGK1pm+1
>>894
最初の引数は $1 で渡されるので ${1:offset:length} のようにすると部分文字列を切り出せる。
例えば ${1:0:4} なら先頭の年の4桁になる。
2018/04/12(木) 13:03:59.46ID:Zzp9N4Tt
>>895
ありがとうございます。
要件通り動作しました!
2018/05/12(土) 10:59:02.49ID:pDgCeBjY
共同ツール 1
https://seleck.cc/685

https://trello.com/
ボードのメニュー → Power-Upsから拡張可能 Slack DropBoxなど
Trello Chrome拡張機能 elegant
ttp://www.kikakulabo.com/service-eft/
trelloのオープンソースあり

共同ツール 2
https://www.google.com/intl/ja_jp/sheets/about/

共同ツール 3
https://slack.com/intl/ja-jp
https://www.dropbox.com/ja/
https://bitbucket.org/
https://ja.atlassian.com/software/sourcetree
https://sketchapp.com/extensions/plugins/
ttp://photoshopvip.net/103903

ttps://goodpatch.com/blog/sketch-plugins/
898デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:51:27.67ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

ILEYF
899デフォルトの名無しさん
垢版 |
2018/07/05(木) 01:44:54.61ID:RfoszcD2
9B4
900デフォルトの名無しさん
垢版 |
2018/07/05(木) 03:16:26.29ID:8UhFPcQc
茨城県民死ねよ
901デフォルトの名無しさん
垢版 |
2018/07/05(木) 03:19:12.08ID:Mlujh05Y
おいクソ荒らし

板荒らすのやめろやボケ
902デフォルトの名無しさん
垢版 |
2018/07/05(木) 11:50:50.65ID:IcGtf/nv
IPのひとつはこれかな

364 デフォルトの名無しさん 2018/07/04(水) 21:56:02.05SLIP:ワッチョイ f5fa-2e90 [114.149.223.252](1)ID:gFgZc5FG0(1)
BDR
903デフォルトの名無しさん
垢版 |
2018/07/05(木) 12:20:05.04ID:bmsMRAhD
前科あったのかこのIP

164 デフォルトの名無しさん sage 2018/05/25(金) 13:21:39.62ID:slKDy5Ac(1)
114.149.223.252
904デフォルトの名無しさん
垢版 |
2018/07/05(木) 13:59:50.38ID:LwyvWF7X
https://www.iphiroba.jp/ip.php?mode=ranking&;ip=114.149.223.252&token=ccdb774c4b7c209c37ca08253144114b

茨城かな?
2018/07/05(木) 15:11:55.88ID:DWuZ9zG7
>>904
そのページの114.149.223.252の位置情報で表示される地図で
静岡県三島市の株式会社Geolocation Technologyにピンが立ってる
906デフォルトの名無しさん
垢版 |
2018/08/20(月) 16:43:07.23ID:aLr4GPAX
構造のあるテキストの部分だけを加工するにはどうすれば…
$ cat before
* Fruit
apple
banana
orange
banana

* Animal
dog
cat
penguin

$ cat expect
* Fruit
apple
banana
orange

* Animal
cat
dog
penguin
907906
垢版 |
2018/08/20(月) 16:43:38.67ID:aLr4GPAX
sed の write file をプロセス置換と組み合わせればいけるかと思ったがそんなことはなかった
$ cat before | sed -n -e '/^*/,/^$/{/^*/p;/^*/d;}' -e 'w '>(sort -u)

* Fruits
* Animal

apple
banana
cat
dog
orange
penguin
908デフォルトの名無しさん
垢版 |
2018/08/20(月) 17:01:47.21ID:h5lNG6L+
$ cat before
* Fruit
apple
banana
orange
banana

* Animal
dog
cat
banana
penguin
apple

$ cat expect
* Fruit
apple
banana
orange

* Animal
cat
dog
penguin

でもいいのか?
909906
垢版 |
2018/08/20(月) 18:56:15.99ID:aLr4GPAX
>>908
いえ、そこまで難しいケースはまだ考えてなくて、各項目の内容をそれぞれソートしたいだけです。
ソートはできれば外部コマンド sort -u などに渡して行いたい。加工方法をコマンドとして取り替えられるようにしたいので。
例えば tr '[a-z]' '[A-Z]' に換えて
* Fruits
APPLE
のようにできると嬉しいです。
910デフォルトの名無しさん
垢版 |
2018/08/20(月) 21:54:46.90ID:jUR6uBV4
切り出して別コマンドに渡すんだよね。
Perl で行の区切りを '*' にして塊を読んで内容をパイプで渡すみたいにすれば良いのではないだろうか。
しかしこれをしようとすると1行プログラムではきつい。

そういえばこれプログラミングのお題スレに問題として書いとくのはどうかな。
お題としては丁度良さそうだし多分みんなして色んな言語で作ってくれるよ。
911906
垢版 |
2018/08/20(月) 22:17:50.27ID:aLr4GPAX
>>910
アドバイスありがとう。
シェルスクリプトはパイプを使って多くのことを圧倒的な短さで出来るし、テキスト処理は最も得意な領域のはず。
しかしこれだけ単純な課題の答えが複雑になってしまうのなら、これは穴なんじゃないか、みんなどうしてるんだろう、と思ったんです。
俺は今月この種のタスクに何度も直面しました。
流れるコンパイルログの一部分だけをハイライトしたかったり、
Makefileのデバッグログのセクションに分かれた情報をファイルや一時変数を介さないで処理したかったり。
egzactのconvなどがシェルスクリプトのデータ生成という穴を埋めたように、この問題が鬼門なら、
解決するコマンドを考えてみたいです。
2018/08/20(月) 22:45:23.64ID:iMQAgpc+
>>911
> テキスト処理は最も得意な領域のはず。
それは正しいがシェルは構造を持ったデータをパイプに流せないのでこの手の処理は不得意
PowerShell ならもう少し綺麗にかける
2018/08/21(火) 01:05:48.21ID:kxzeRRBS
シェルは、テキスト・文字列で渡す

一方、PowerShell はオブジェクトだから、構造を持てる。
配列・辞書もOK

Ruby などがベスト
914906
垢版 |
2018/08/21(火) 03:18:04.26ID:34Jmks75
UNIXプログラミングスレで Powershell を勧められるとは思いませんでしたよ。
他言語での解決が興味深いです。お題スレに投稿しました。よろしくどうぞ
https://mevius.5ch.net/test/read.cgi/tech/1524570314/#758
2018/08/22(水) 20:52:17.34ID:PmiUKg2L
考えたんだけど、もっと単純なタブ区切りデータ
hoo banana
bar apple
baz orange
の二項目名だけをソートして戻す、ということさえシェルスクリプトでは苦悶だ。
戻さないなら cut -f2 | sort でラクなのに。

awesome-cut -f2 <>(sort)
のようにできる読み書き可能ファイルを受け取るコマンド awesome-cut と読み書きプロセス置換<>(...)
機能をシェルに加えれば簡単になるかと思ったがダメだ。この方針はスケールしない。

プロセス置換はコマンド行をパーズした時点で名前付きパイプ?になるらしい。
だからネストされたデータを処理するには、フィルタ処理したい分のプロセス置換をあらかじめベタ書きしておかなくちゃならない。

それを避けるためには xargs のように自分でプロセスを起こす、文字列から作るようなコマンドが必要だ。
しかし現行のシェルスクリプトの仕様では、文字列はネストするほどクォーテーションが厳しくなり、使いにくくなる。

解決方法はわからない。シェルスクリプトを諦めるしかないか。
jqコマンドはJSONを扱う。処理の埋め込みも可能。そういうコマンドの中だけで完結させるか。
(お題スレの解答のPerlは美しかった…)
916デフォルトの名無しさん
垢版 |
2018/08/22(水) 22:13:37.65ID:AXf2QKcH
>>915
フィールド指定出来るソートコマンドを使う
2018/08/22(水) 22:35:15.97ID:PmiUKg2L
>>916
サクッと書けそうなのが良いけど、「フィールド指定可能なtrコマンド」みたいに各コマンドに切り出し埋め込み能力が必要になっちゃう
918デフォルトの名無しさん
垢版 |
2018/08/22(水) 23:34:08.76ID:AXf2QKcH
何で急にありもしないコマンドを発明してんの?
2018/08/22(水) 23:48:32.88ID:PmiUKg2L
>>918
構造のあるテキストデータの一部分だけ外部コマンドで加工して戻したいんですよ。
それに何が必要なのかを考えています。

「タブ区切りデータの第二カラムをソートして戻す」ために
>>916 は、そういう機能を持つ外部コマンドを使え(必要なら作れ)、
という意味のアドバイスだと受け取ったのですが違うんですか?
2018/08/23(木) 00:56:37.97ID:qUZ5eK5Q
powershell なら、フィールドでソートするのも簡単だけど
「powershell sort 列指定」で検索!

PowerShell の Sort-Object Tips
http://www.vwnet.jp/windows/PowerShell/2017032901/Sort-Object_Tips.htm
2018/08/23(木) 01:19:50.15ID:FMBOl46f
>>920
ほほう… これが Powershell ですか。項目名でソートできるのが強いですね。

ところでお二方に間違って伝わったみたいで… 書き方が不注意でした。
hoo banana
bar apple
baz orange
の第二カラムをソートして戻すとは、
hoo apple
bar banana
baz orange
を得ることです。第一カラムは変わらないことにご注意を。
sort -k 2 などでは行全体を移動してしまいます。

Powershell ではどのようにこれを実現しますか?
922デフォルトの名無しさん
垢版 |
2018/08/23(木) 01:26:09.02ID:lJLY7fZ1
>>921
cutしてpasteすりゃ済むじゃん
中間ファイルは複数出来るけど
2018/08/23(木) 02:39:41.54ID:FMBOl46f
>>922
ありがとう。できました(全然苦悶じゃなかった)
all=$(cat); paste <(echo "$all" | cut -f1) <(echo "$all" | cut -f2 | sort)

これを応用すれば上の方の縦型の構造もできるかも。
paste の縦バージョンは cat な訳だから…
924923
垢版 |
2018/08/23(木) 03:04:21.42ID:FMBOl46f
(たびたびスマン)
hcutのようなものは作れるが、でもネストするのにプロセス置換を使っていたら結局
加工プロセスをあらかじめ作らなくちゃならないので >>915 の問題は解決不能のままだわ。
2018/08/23(木) 04:41:50.26ID:qUZ5eK5Q
1列目を、f1 ファイルへ抽出する。
2列目を、f2 ファイルへ抽出する

f2 をソートして、f2a ファイルとする

f1, f2a を合体させる
926デフォルトの名無しさん
垢版 |
2019/06/19(水) 04:55:07.98ID:tVNS+22r
【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/
2020/07/15(水) 15:52:06.92ID:Gv1oILMC
-v -vv
こんなオプションで詳細を表示するコマンドがいくつかあります。

# こんなやつ
date -v+1y
rpm -ivh

この v は何を表しているのですか?
2020/07/15(水) 23:17:43.21ID:sTXcW8ZQ
自己解決

verbose の v だと思う。
2020/07/16(木) 06:12:18.40ID:e3HYNoij
grep の -v はたぶん inVert の v。
2020/07/16(木) 18:41:02.51ID:G1qqh9eh
ググっても説明してある意味が分からないということ?
931デフォルトの名無しさん
垢版 |
2022/01/31(月) 21:18:15.66ID:2XvruXKk
UNIXでのシステム開発の実際が知りたい
今なんの言語を使って開発してるの?
データベースとか何使ってるの?
932デフォルトの名無しさん
垢版 |
2022/01/31(月) 21:18:36.74ID:2XvruXKk
あ、UNIXっていうのはmacOS以外ね
2022/02/01(火) 01:45:58.51ID:aJyTMuPS
少し前までJavaを使っていたが、今はC++。
Rustに行きかけたんだけど偉い人に駄目と言われてしまった。
934デフォルトの名無しさん
垢版 |
2022/02/01(火) 13:10:18.35ID:V7jk2Rfu
へー、Rustとか新しいの使えるんだ
UNIXってなんかバラバラで、みんな一体何をどう使って開発しているのか
全然想像つかないんだよね
Linuxみたいにapt-getでrust入れてーとかして使うの?
2022/02/01(火) 13:51:20.76ID:/+irRzAS
この頃は Linux ばっかり使っている
UNIX がインストールされているマシンが身近にない
936デフォルトの名無しさん
垢版 |
2023/08/24(木) 18:51:08.86ID:CY1BVKcv
たとえば古い passwd ファイルの形式とかで使われていた
root:x:0:0:root:/root:/bin/bash
user01:x:500:500::/home/user01:/bin/bash
のような「:」区切りのテキストファイルのデータベースを扱いたいとき
C標準のライブラリは何ですか?
Rust用のcrateで言うと何ですか?
2023/08/24(木) 20:05:39.07ID:AvQ+uDT8
Ruby なら、CSV モジュールを使う

require 'csv'

options = { col_sep: ":" } # 列区切り文字

CSV.foreach( "input.csv", options ) do |row| # 1行ずつ処理する
p row
end

出力
["root", "x", "0", "0", "root", "/root", "/bin/bash"]
["user01", "x", "500", "500", nil, "/home/user01", "/bin/bash"]
2023/08/25(金) 06:42:11.04ID:1ayFYibv
>>831
Rust
区切るだけならstr.split(':')かstr.splitn(7, ':')が各項目のstrを次々と返してくれる
各項目毎に型(文字列や整数やOptionなど)フィールドを持つ構造体に入れるなら一般的にserde crateが万能
そのケースならcsv crateで':'をデリミタ指定すると容易
939デフォルトの名無しさん
垢版 |
2023/08/25(金) 09:30:30.62ID:5+gJach+
Rust
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=a74bc8e5de0b5fd5e1c4203865abfb2d
っていうか中身読めちゃったテヘペロ
2023/08/25(金) 10:27:32.18ID:5+gJach+
ちょと治した
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=c7b6a2e68759ea120ea83d56bdc72021
file の reader で読むと
# Hello, and thanks for looking into the Rust Playground's security!
っていう行が勝手に先頭に足される
csv の reader で読むと余計な行が増えない
穴があるんかな
941デフォルトの名無しさん
垢版 |
2023/08/25(金) 10:29:22.44ID:5+gJach+
ああ has_headers() が読み飛ばしてただけか
942937
垢版 |
2023/08/26(土) 03:49:56.11ID:wsJDYSi/
>>937
を修正。
2, 3列目を整数に変換する

require 'csv'

proc = Proc.new do |field, field_info|
case field_info.index
when 2, 3 then field.to_i
else
field # 処理なし
end
end

options = { col_sep: ":", :converters => proc } # 列区切り文字

CSV.foreach( "input.csv", options ) do |row| # 1行ずつ処理する
p row
end


出力
["root", "x", 0, 0, "root", "/root", "/bin/bash"]
["user01", "x", 500, 500, nil, "/home/user01", "/bin/bash"]
2023/08/26(土) 21:18:17.35ID:C41SkMxi
C言語とRustについて聞かれているのに
一生懸命Rubyで答えてどうするの?
ちょっと心配した方が良いレベルやぞ
2023/08/27(日) 03:03:02.52ID:/wQZGqy6
Rustでは文字列から他の型(数値など)への変換やその逆を自動でやってくれる(serdeがある)
以下のように(好きな型名とフィールド名で)構造体を定義するだけで動く

#[derive(Debug, serde::Deserialize)]
struct Passwd {
 name: String,
 passwd: String,
 uid: u32,
 gid: u32,
 gecos: String,
 dir: String,
 shell: String,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
 // CSVリーダーをヘッダ無しで区切り文字コロンでPASSWD_PATHファイルから読み込みで作成
 let mut reader = csv::ReaderBuilder::new()
  .has_headers(false)
  .delimiter(b':')
  .from_reader(std::fs::File::open(PASSWD_PATH)?);
 // 各行を構造体Passwdへ読み込む (様々なエラーを捕捉できるようResult型が返る)
 for result in reader.deserialize::<Passwd>() {
  let passwd = result?;
  println!("{passwd:?}");
 }
 Ok(())
}
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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