[解決済み] シェルスクリプトにRubyを使用するには?
2022-04-23 20:36:32
質問
シェルスクリプトを使った簡単な作業を行いたいのですが
例えば ある正規表現にマッチするファイルのリストから、作業ディレクトリ内のファイルを選択する。
この種のことは標準のbashとgrepでできることは知っていますが、コマンドライン・プログラムとフラグなどのヒープを記憶することなく、Windowsとlinuxで動作するクイックスクリプトをハックできるのはいいことだと思います。
これを実行しようとしたのですが、結局、カレントディレクトリへの参照など、どこで情報を取得すればいいのかわからなくなってしまいました。
そこで質問ですが、rubyのシェルスクリプトを書くには、rubyライブラリのどの部分を知る必要があるのでしょうか?
どのように解決するのか?
デフォルトでは、すでに Dir と ファイル それだけでかなり便利です。
Dir['*.rb'] #basic globs
Dir['**/*.rb'] #** == any depth of directory, including current dir.
#=> array of relative names
File.expand_path('~/file.txt') #=> "/User/mat/file.txt"
File.dirname('dir/file.txt') #=> 'dir'
File.basename('dir/file.txt') #=> 'file.txt'
File.join('a', 'bunch', 'of', 'strings') #=> 'a/bunch/of/strings'
__FILE__ #=> the name of the current file
また、stdlibから便利なのは ファイルユーティリティ
require 'fileutils' #I know, no underscore is not ruby-like
include FileUtils
# Gives you access (without prepending by 'FileUtils.') to
cd(dir, options)
cd(dir, options) {|dir| .... }
pwd()
mkdir(dir, options)
mkdir(list, options)
mkdir_p(dir, options)
mkdir_p(list, options)
rmdir(dir, options)
rmdir(list, options)
ln(old, new, options)
ln(list, destdir, options)
ln_s(old, new, options)
ln_s(list, destdir, options)
ln_sf(src, dest, options)
cp(src, dest, options)
cp(list, dir, options)
cp_r(src, dest, options)
cp_r(list, dir, options)
mv(src, dest, options)
mv(list, dir, options)
rm(list, options)
rm_r(list, options)
rm_rf(list, options)
install(src, dest, mode = <src's>, options)
chmod(mode, list, options)
chmod_R(mode, list, options)
chown(user, group, list, options)
chown_R(user, group, list, options)
touch(list, options)
これはかなりいい
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashで文字列をデリミターで分割するには?
-
[解決済み] ディレクトリが存在しない場合のみmkdirする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] シェルスクリプトでブール変数を宣言して使用するにはどうすればよいですか?
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Aptana Studio 3.6をWindowsにインストールできない
-
[解決済み] nil:NilClass のための未定義のメソッド `+' (NoMethodError)
-
[解決済み] git, Heroku: pre-receive フックの減少
-
[解決済み] ルビーです。そのようなファイルやディレクトリはありません @ rb_sysopen - testfile (Errno::ENOENT)
-
[解決済み] Ruby - 文字列を日付に変換する
-
[解決済み] Ruby の `print` から bash スクリプトを呼び出して echo するにはどうしたらいいですか?
-
ERRORの問題を解決します。rails のインストール時に gem ネイティブ拡張のビルドに失敗しました。
-
[解決済み] Rubyで指定されたディレクトリが存在するかどうかを確認する方法
-
[解決済み] JanusのセットアップにVIMプラグインを追加する
-
[解決済み] 配列からランダムに選択する方法は?