2020年08月11日

`xargs` で空白込みのパスを扱う

覚書を兼ねて。

標準入力からの内容を元に、任意のコマンドを実行できるxargsコマンド。例えば、以下のような使い方が出来る。

# `man xargs` で確認できる1番最初の用例より。
# /tmp以下から "core" という名前のファイルを再帰的に検索し、それを削除する。
find /tmp -name core -type f -print | xargs /bin/rm -fa

ところで、この例では、ファイル名に空白記号が含まれていた場合、上手く動作しない。空白が語と語の区切りと見做されるからである。

# 先と同じ例で、ただし対象となるファイル名が "have whitespace" であった場合。
# 期待に反してファイルは消えない。
find /tmp -name 'have whitespace' -type f -print | xargs /bin/rm -f

何故ならば、xargsで実行する/bin/rmは、実質的には /bin/rm -f have whitespace となり、「have」と「whitespace」と2ファイルを消す操作となるからである。機械的に語が追加された結果、語の中の空白文字が、コマンド引数の区切り空白と見做されてしまう為である。

こういう場合どうすればいいか? 回答の1つは、xargsへの入力を明示的にクォートする事であるようだ。

# `sed` で明示的にクォートする事で、「空白を含む1語」である事を明示する。
find /tmp -name 'have whitespace' -type f -print | sed -e "s/^.*$/'&'/g" | xargs /bin/rm -f

sedがキモい……xargs側で面倒を見てほしい気がする……

別解としては、xargsへの入力をNULL文字区切りにする方法が在る。ただし、findのような、NULL文字区切りで出力できるコマンドを使用する時に限られる。例えばlsでは無理。

# NULL文字を区切りとして使う=空白文字は区切りと見做されない。
# `find` の `-print0` でNULL文字区切りで出力し、
# `xargs` の `-0` で、入力がNULL文字区切りである事を知らせる。
find /tmp -name 'have whitespace' -type f -print0 | xargs -0 /bin/rm -f
posted by 天井冴太 at 12:39| Comment(0) | Information | 更新情報をチェックする

2014年06月01日

一時的にコメントとトラックバックの受付を停止しています → 再開しました

一時的にコメントとトラックバックの受付を停止している。

諸事情により、本日より一時的にネットが使えない状況となり、管理出来ない(SPAMが来ても対処出来ない)ので。

また、これは主にオフラインの友人向けの連絡となるが、この期間中、もし何か用が有る時は携帯電話にかけるようにして欲しい。

2014年9月7日追記

ネット環境復活により、コメントとトラックバックの受付を再開しました。

ラベル:blog phone
posted by 天井冴太 at 04:12| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2014年04月16日

2014年4月24日Seesaaブログメンテナンス

下記期間にメンテナンスを実施いたします。

メンテナンス期間中は、ご利用いただけないサービスがございますのでご了承ください。

期間

2014年04月24日(木) 午前1時 から 午前6時

最終的なメンテナンス終了時刻は、作業状況によって前後する場合がございます。

範囲

  • Seesaaブログへの記事投稿・閲覧など全般
  • ((略))
  • Seesaaブログで作成されたブログへのコメント投稿・トラックバック送信

以上、「メンテナンスのお知らせ(2014年4月24日実施):Seesaaからのお知らせ」より。

という訳で、該当時間は御迷惑をかけますが宜しく御願いします。

ラベル:seesaaブログ blog
posted by 天井冴太 at 01:59| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2013年04月17日

TB: メンテナンスのお知らせ(2013年 4月17日実施)

メンテナンスのお知らせ(2013年 4月17日実施):Seesaaからのお知らせ

下記期間にメンテナンスを実施いたします。

(略)

期間

2013年 4月17日(水) 午前1時 から 午前6時 までを予定

メンテナンス終了時刻は、作業状況によって前後する場合がございます。

範囲

(略)

  • Seesaaブログで作成されたブログへのコメント投稿・トラックバック送信

とのことなので、よろしくお願いします。

ラベル:blog Seesaa_blog
posted by 天井冴太 at 06:00| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2013年03月13日

TB: メンテナンスのお知らせ(2013年 3月13日実施):Seesaaからのお知らせ

メンテナンスのお知らせ(2013年 3月13日実施):Seesaaからのお知らせ

下記期間にメンテナンスを実施いたします。

((略))

期間

2013年 3月13日(水) 午前1時 から 午前6時 までを予定

*メンテナンス終了時刻は、作業状況によって前後する場合がございます。

範囲

((略))

  • Seesaaブログで作成されたブログへのコメント投稿・トラックバック送信*2

((略))

*2
ユーザー様が作成されたブログは、メンテナンス期間中も閲覧出来る状態となっております(表示されづらい時間帯が発生する可能性はございます)。
posted by 天井冴太 at 06:00| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2012年12月25日

Vimperator Advent Calendar 2012 開催します

Vimperator Advent Calendar 2012 : ATND

(Vimっぽく)ほぼキーボードだけで快適にwebブラウジング出来るVimperatorという、Firefox用アドオンがある。JavaScript製のプラグインを用いることで容易にカスタマイズする事が出来る、有る意味で究極のブラウザだ(プラグインだけど)。

今回、そのVimperatorのAdvent Calendarを開催する事にした。

(開催決定についてのログはVimperator ? LingrLingrのVimperator部屋に残っている。)

Advent Calendarとは、12月1日から25日まで、参加者が一人1日ずつ、お題に沿った記事を書くという、IT業界ではおなじみのイベントである。

Vimperatorに関する事ならばどんな内容でも構わない。「私なんかのレベルじゃ申し訳ないし」などといった心配は無用である。なにせ私自身、過去Advent Calendarに参加したのは1回だけなのに主催、という無謀っぷりである。

詳細は上に挙げたリンク先を参照して欲しい。

皆様ふるってご参加下さい。

Vimperator Advent Calendar 2012 : ATND

posted by 天井冴太 at 23:59| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2012年10月11日

TB: メンテナンスのお知らせ(2012年10月17日実施)

Seesaaブログでのメンテナンス実施の都合上、下記期間にて当blogの閲覧ができません。ご了承ください。

以下、メンテナンスのお知らせ(2012年10月17日実施):Seesaaからのお知らせより。

■ 期間
2012年10月17日(水) 午前2時 から 午前8時 までを予定
*メンテナンス終了時刻は、作業状況によって前後する場合がございます。

■ 範囲
・Seesaaアカウントの登録、変更
・Seesaaブログの閲覧、投稿など操作全般

ラベル:blog Seesaa_blog
posted by 天井冴太 at 01:27| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2012年08月31日

Cygwinでforemanが動かなくなってしまった(現在進行形)

失敗した。

なんの気無しにCygwinの各種パッケージのアップデートを行った。すると、今までRubyは1.8系だったのが(遂に!)1.9系へ。そういえばCygwinのMLアナウンスされてたなと喜んだのも束の間、トラブルが発生。

先ず、元々RubyGemsで入れていた各種パッケージが使えなくなった。まぁこれは恐らく、rubyのバージョンが変わった所為だろう。インストール先のパスにバージョンナンバーが入っているのは確認出来たし。という訳でgem install(とかbundle install)。これは特に問題なし(ディスク上に1.8系で使ってたパッケージのファイルがまるまる残されてそうだが)。

問題は次。Herokuにデプロイするアプリケーションを開発する為に使っているforemanがまともに動かなくなった。

foreman startすると、

23:38:04 web.1  | started with pid 4376

……と出力したところで止まる。プロセスがゾンビ化し、Ctrl+Cも効かない。

Procfileに書いている内容を元に、

bundle exec ruby script.rb -p 5000

とプロンプトに入れてみると、これは普通に動作する(WEBrickで起動する)。

そういえばrubyにはdebug用のオプションが在ったなと、ruby -d `which foreman` startしてみると、以下の出力が得られた。

Exception `LoadError' at /usr/lib/ruby/1.9.1/rubygems.rb:1264 - cannot load such file -- rubygems/defaults/operating_system
Exception `LoadError' at /usr/lib/ruby/1.9.1/rubygems.rb:1273 - cannot load such file -- rubygems/defaults/ruby
/usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/engine.rb:103: warning: assigned but unused variable - process
/usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/engine.rb:103: warning: assigned but unused variable - index
/usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/env.rb:21: warning: method redefined; discarding old entries
/usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb:14: warning: assigned but unused variable - formatter
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb
		from /usr/bin/foreman:23:in `<main>'
		from /usr/bin/foreman:23:in `load'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/bin/foreman:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/cli.rb:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb:28:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export/base.rb:1:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb
		from /usr/bin/foreman:23:in `<main>'
		from /usr/bin/foreman:23:in `load'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/bin/foreman:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/cli.rb:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb:29:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export/inittab.rb:1:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export/upstart.rb:20: warning: assigned but unused variable - port
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb
		from /usr/bin/foreman:23:in `<main>'
		from /usr/bin/foreman:23:in `load'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/bin/foreman:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/cli.rb:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb:30:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export/upstart.rb:2:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb
		from /usr/bin/foreman:23:in `<main>'
		from /usr/bin/foreman:23:in `load'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/bin/foreman:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/cli.rb:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb:31:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export/bluepill.rb:2:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb
		from /usr/bin/foreman:23:in `<main>'
		from /usr/bin/foreman:23:in `load'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/bin/foreman:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/cli.rb:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb:32:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export/runit.rb:2:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb
		from /usr/bin/foreman:23:in `<main>'
		from /usr/bin/foreman:23:in `load'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/bin/foreman:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/cli.rb:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb:33:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export/supervisord.rb:2:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb
		from /usr/bin/foreman:23:in `<main>'
		from /usr/bin/foreman:23:in `load'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/bin/foreman:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/cli.rb:5:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export.rb:34:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/gems/1.9.1/gems/foreman-0.57.0/lib/foreman/export/launchd.rb:2:in `<top (required)>'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
		from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
Exception `NameError' at /usr/lib/ruby/1.9.1/psych/core_ext.rb:16 - method `to_yaml' not defined in Object
Exception `NameError' at /usr/lib/ruby/1.9.1/psych/core_ext.rb:29 - method `yaml_as' not defined in Module
Exception `NameError' at /usr/lib/ruby/1.9.1/psych/deprecated.rb:79 - undefined method `to_yaml_properties' for class `Object'
/usr/lib/ruby/gems/1.9.1/gems/thor-0.16.0/lib/thor/base.rb:583: warning: instance variable @no_tasks not initialized
/usr/lib/ruby/gems/1.9.1/gems/thor-0.16.0/lib/thor.rb:294: warning: instance variable @long_desc not initialized
/usr/lib/ruby/gems/1.9.1/gems/thor-0.16.0/lib/thor.rb:294: warning: instance variable @long_desc not initialized
03:59:38 web.1  | started with pid 3760

最初に出てくる2つのLoadErrorが気になる……/usr/lib/ruby/1.9.1/rubygems/defaults/なんてディレクトリは無いし。

うーん、どうすれば良いんだろう?誰か解決策知ってる人居ませんかね?

Procfileに書いている内容
web: bundle exec ruby script.rb -p $PORT
posted by 天井冴太 at 17:35| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2012年08月20日

FW:メンテナンスのお知らせ(2012年8月23日実施)

メンテナンスのお知らせ(2012年8月23日実施):Seesaaからのお知らせ

■ 期間
2012年8月23日(木) 午前2時 から 午前8時 までを予定
*メンテナンス終了時刻は、作業状況によって前後する場合がございます。

■ 範囲
・Seesaaアカウントの登録、変更
・Seesaaブログの閲覧、投稿など操作全般

ラベル:Seesaa_blog
posted by 天井冴太 at 00:38| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2008年06月29日

引っ越しとそれに伴う天井冴太のネット接続状況について

天井の染みの方にも書いたけど、一応こちらにも。


いやまぁ、タイトルの通りなんだが、東京転勤になった。正直大阪に1年しか居ないとは思わなかったぞこのやろう。

そんな訳で、
今週中程からネットに繋げない状態が発生するかもしれません
私にコンタクトを取ろうとしても返事がない可能性があります。ご了承ください。

いやま、そんな人が居るのかどうか知らないけど、一応、ね。

posted by 天井冴太 at 13:31| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2007年09月30日

『あわせて読みたい』『はてなスター』導入

兄弟blog天井冴太的つれづれblog [天井の染み]の方でも告知した通り、サイドバーにあわせて読みたいを、各エントリのタイトル横にはてなスター導入しました。

posted by 天井冴太 at 00:53| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

2006年06月11日

カテゴリを変更しました

このblogのカテゴリの種類を、今迄『Hack』とか『Book』といった『何をやったか、何を取り上げたか』という分け方だったカテゴリを、言語や環境といったものに変更した。多分コッチの方がよりニーズに合った記事を読めるようになるだろう、と。例えば、C/C++についての話題だけ見たい、Javaとか使わないからイラネ、といった場合に見やすくなったのではないかと思う。

今後もこのblogAMAgrammar <> PROgrammerをよろしく

天井冴太メインのblog天井冴太的つれづれblog [天井の染み]もよろしく!!

posted by 天井冴太 at 16:50| Comment(0) | TrackBack(0) | Information | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。