[過去ログ] くだらねえ質問はここに書き込め! Part 241 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
633
(8): 2020/10/06(火)08:59 ID:0IHWElo7(1/5) AAS
>>624
Ruby で書いた。
ただし、DryRun なので表示されるだけで、実際には実行されません

require 'fileutils'

# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
dir_path = "C:/Users/Owner/Documents/test/*"
target_dir = File.dirname( dir_path ) # ディレクトリパスだけを取り出す

# ^ は先頭から、\d は数字、+ は1文字以上。( ) 内は、$1 でキャプチャー
re = /^(\d+)/
省11
636: 633 2020/10/06(火)11:08 ID:0IHWElo7(2/5) AAS
>>633
バグあり!

>"%03d" % $1
08, 09 みたいな、先頭が0で始まるファイル名は、8進数と解釈されるので、バグってしまう
637: 633 2020/10/06(火)11:13 ID:0IHWElo7(3/5) AAS
008, 009 も、8進数と解釈されるので、バグってしまう

これは、やっかい。
Ruby のformat 関数は、文字列を一旦、整数型へ変換してるのかも
638: 633 2020/10/06(火)11:27 ID:0IHWElo7(4/5) AAS
>>633
修正

>"%03d" % $1
"%03d" % $1.to_i

0で始まる文字列を、一旦、10進数整数へ変換してから、format するように修正します

08 → 8 → 008
009 → 9 → 009
649: 633 2020/10/08(木)07:30 ID:rclc/Umi(2/4) AAS
>>633
を修正した

例えば、1.txt, 01.txt などが、
同じファイル名(001.txt)になる場合をチェックして、エラー表示する

Ruby のソースコードは、次の投稿へ書く
650: 633 2020/10/08(木)07:31 ID:rclc/Umi(3/4) AAS
require 'fileutils'

# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
dir_path = "C:/Users/Owner/Documents/Ruby/test/test75_9_3/*"
target_dir = File.dirname( dir_path ) # ディレクトリパスだけを取り出す

re = /^(\d+)/ # ^ は先頭から、\d は数字、+ は1文字以上。( ) 内は、$1 でキャプチャー

# hash のキーは、変更後のファイル名、値は変更前のファイル名
hash = Dir.glob( dir_path )
.select { |full_path| File.file?( full_path ) } # ファイルのみ処理する
.each_with_object( { } ) do |full_path, hash|
省13
663
(1): 633 2020/10/08(木)23:46 ID:rclc/Umi(4/4) AAS
>>651
漏れは、anyenv で、Ruby のバージョンマネージャーのrbenv を使っている

file `which ruby`
/home/ユーザー名/.anyenv/envs/rbenv/shims/ruby

file /usr/bin/ruby
/usr/bin/ruby: cannot open `/usr/bin/ruby' (No such file or directory)

より一般的には、こうかな?
#!/usr/bin/env ruby
666: 633 2020/10/09(金)05:44 ID:jb9xHqqC(1/2) AAS
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える

以下のRuby スクリプトを実行すると、ちゃんと、2.6.6 と表示できた!

#!/usr/bin/env ruby
省1
667: 633 2020/10/09(金)06:03 ID:jb9xHqqC(2/2) AAS
file `which node`
/home/ユーザー名/.anyenv/envs/nodenv/shims/node

以下のJavaScript ファイルを実行すると、ちゃんと、12.16.2 と表示できた!

#!/usr/bin/env node

console.log(process.version) //=> v12.16.2
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.059s