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 ;
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ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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