[過去ログ] くだらねえ質問はここに書き込め! Part 237 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
903
(1): 2019/09/28(土)00:07 ID:0lpeYV8R(1) AAS
CSVの1行目の情報をもとに、指定位置だけ切り出してくれるような
コマンドはありますでしょうか

やりたいこととしては、たくさんCSVファイルがあります。
1行目はみんな、列名が書いてあります。
その列のうち、AAA列とBBB列を切り出したいのですが、
列の位置がファイルによってバラバラです。

※視認性の為、区切り文字を全角にしています。

File1=AAA、BBB、CCC、DDD、EEE
File2=AAA、ZZZ、XXX、BBB、CCC
File3=YYY、AAA、WWW、VVV、BBB
省3
904: 2019/09/28(土)00:51 ID:W5N1larQ(1) AAS
awkでやるか一回sqliteに突っ込むか
905: 2019/09/28(土)04:16 ID:+P/vsWgl(1) AAS
>>903
csvtool でいけるんじゃね?
906: 2019/09/28(土)05:09 ID:usFR7F6O(1/2) AAS
正規表現クラスのあるスクリプト言語の方がやりやすい気がする
^AAA, みたいなマッチング
907: 2019/09/28(土)05:12 ID:usFR7F6O(2/2) AAS
ちがった

SELECT AAA, BBB FROM table_from_file_hoge
みたいな感じか
908: 2019/09/28(土)06:46 ID:5aQjhVEd(1/2) AAS
今ググってみた限りでは csvtool の column-spec は番号だけらしいが…
本当にそうなら textql の方が今回のニーズに合ってるんじゃない?
909: 2019/09/28(土)06:49 ID:5aQjhVEd(2/2) AAS
あっ、namedcol の方を使えばいいのか。
910: 2019/09/28(土)23:58 ID:+z02oGGT(1) AAS
awkとsedってどう使い分けたらいいんでしょうか?
911: 2019/09/29(日)00:16 ID:AB1fRWq3(1/7) AAS
sedで出来ることはsed
sedで難しい・できないことはawk

Perl との速度差は分からん
912
(1): 2019/09/29(日)01:27 ID:3MN1IBs7(1/3) AAS
wgetでDLするファイルの頭にゼロ埋めした連番を追加する方法教えろ下さい
URL一覧で使いたい
913: 2019/09/29(日)02:00 ID:AB1fRWq3(2/7) AAS
Javascript での String.padStart(3,"0") とかで処理
ファイル名のリストを find か何かでプレーンテキストで抽出してしまえば、あとはそれこそ sed で Javascript の配列のコードに出来るだろ
914: 2019/09/29(日)02:31 ID:xAYnjQy8(1) AAS
>>912
{000..099} みたいにシェルに展開させるか、curl だと備え付けの似たようなシーケンス指定方法がある
915: 2019/09/29(日)02:41 ID:AB1fRWq3(3/7) AAS
wget のコマンドラインオプションなら --output-file= とかか
916
(1): 2019/09/29(日)03:07 ID:HiXBhVBW(1/2) AAS
Ruby なら、文字列内の、#{ } 内に、式を埋め込める

これを、script.rb に書いて、
ruby script.rb > ファイル名
とすれば、そのファイルに書き込める

( 0..2 ).each do |num|
puts "外部リンク:example.com sprintf( "%03d", num ) }x.gz"
end

出力
外部リンク[gz]:example.com
外部リンク[gz]:example.com
省1
917: 2019/09/29(日)04:16 ID:AB1fRWq3(4/7) AAS
※どういうコードが分かりやすいと感じるかは個人差があります

Javascript でブラウザに表示するならこんな感じ

const b = document.getElementsByTagName("body")[0]
for (let i = 0; i <= 9; i++) {
const d = document.createElement("div")
const num = i + ""
d.textContent = "外部リンク:example.com + num.padStart(3,"0") + ".jpg"
b.appendChild(d)
}
918
(1): 2019/09/29(日)05:33 ID:3MN1IBs7(2/3) AAS
URL一覧は普通のtxtです
$ cat list.txt
画像リンク[jpg]:example.com
画像リンク[jpg]:example.com

非連番のファイルに番号を追加してwgetで01_foo.jpgで保存するって意味ですハイ
list.txt自体の加工が目的ではないのであしからず
919: 2019/09/29(日)07:49 ID:IVfG/gFc(1) AAS
あとは頑張れ

cat list.txt | nl -n rz -w 2 | sed -E 's|([0-9]*)\s(.*)/(.*)|\2/\1_\3|'
920: 916 2019/09/29(日)09:37 ID:HiXBhVBW(2/2) AAS
Ruby で、作った

これを、script.rb に書いて、
ruby script.rb list.txt > 出力ファイル名
(つまり、ruby スクリプトファイル名 入力ファイル名 > 出力ファイル名)
とすれば、出力ファイルに書き込める

# 引数は、入力ファイル名。chomp で、行末の改行を削除する
File.foreach( ARGV[0], chomp: true ) do |url| # 1行ずつ処理する
ary = File.split( url ) # ディレクトリパス・ファイル名に、分割する
puts "#{ ary[ 0 ] }/01_#{ ary[ 1 ] }"
end
省3
921: 2019/09/29(日)11:59 ID:VD4Ul87o(1) AAS
perl -ne 'chop; ( $ofile = $_) =~ s%.*\.%$..% ; system("wget","-O",$ofile,$_);'
くらいなら時々やるよ。
( $ofile = $_) =~ s%.*/% sprintf("%02d_",$.) %e
みたいにすればいいかな?
922
(1): 2019/09/29(日)13:39 ID:AB1fRWq3(5/7) AAS
>>918
> wgetで01_foo.jpgで保存する

コマンド自体は
wget --output-file=01_foo.jpg 画像リンク[jpg]:example.com
wget --output-file=02_bar.jpg 画像リンク[jpg]:example.com
だな

"/" でsplitして、配列最後の文字列にプレフィックス 01_ 付けてjoinすれば良いような
言語は好きなものでどうぞ
1-
あと 80 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.012s