• メールアドレス:
  • パスワード:

" ls -l "で指定縦列の中から、grepしたい

OKWave
2008/01/08 10:00
" ls -l " から、指定縦列の中から、grepする方法

SunOS 5.8 sun4u sparc UltraAX-i2 > ls -l
-rw-r--r-- 1 root other 100 1月 1日 00:00 abc-1.txt
-rw-r--r-- 1 root other 100 1月 1日 00:00 abc-2.txt
-rw-r--r-- 1 root other 100 1月 1日 00:00 abc-3.txt
-rw-r--r-- 1 root other 100 5月 11日 00:00 abc-11.txt
-rw-r--r-- 1 root other 100 1月 12日 00:00 abc-12.txt
-rw-r--r-- 1 root other 100 1月 13日 00:00 abc-13.txt
-rw-r--r-- 1 root other 100 1月 1日 00:00 abc-5.txt
-rw-r--r-- 1 root other 100 5月 1日 00:00 abc-6.txt
-rw-r--r-- 1 root other 100 1月 1日 00:00 abc-7.txt
-rw-r--r-- 1 root other 100 1月 1日 00:00 abc-51.txt
-rw-r--r-- 1 root other 100 1月 1日 00:00 abc-61.txt
-rw-r--r-- 1 root other 100 5月 1日 00:00 abc-71.txt

ここから、" 5月 " のファイルのみを標準出力したいのですが、
日本語環境の不備から " ls -l | grep 5月 " のコマンドは刎ねられます。
ですので、策としては、以下のように


ls -l

6列目(月列)を指定。

5 を grep しなさい。

このように(sort +5)のような感じで、パイプをつなげたようなコマンドを用意したいのですが、
その機能が見つかりません。詳しい方、教えて下さい。

csh (bash使用可能)
egrep,fgrep使用可能

良回答

#6の続きです


ls -ltr|perl -lane 'print $_ if $F[5]=~/^5[^0-9]/'

でいかがでしょうか。
日本語環境がないため確認できていませんが...
今回「[^0-9]」を追加していますが、5[^0-9]で
「5から始まって次が数字でない場合」となります。
「[^〜]」で「〜以外」になり「0-9」で数字を表します。

本来は「5月」などとしたいのですが日本語を入れると怖いので(?)
このような形を取っております。

これによって、おそらく


ls -ltr|perl -lane 'print $_ if $F[5]=~/^1[^0-9]/'

で、1月のファイルのみ抽出できるはずです。

回答

#2です。 日本語環境といっても、SJIS,EUC,UTF-8などありますから、その辺がうまくいかない原因なのでしょうが....

一時的に英語環境にしたければ、


LANG=C ls -l | grep " May " 

でもいいとは思います。
ただ、日付が英語で出るのがいやなんですよね。多分。

後は余談かもしれないですので、該当しなかったら参考までに。

本当にしたい処理は、作成されてから半年以上たったログファイルを消そうとしているのかなと勝手に想像しました。

ということで、


find ./ -mtime +180 | xargs ls -l

というのはどうでしょう。-mtime 180は変更があってから180日(半年を勝手に180日としていますが)という意味になります。-mtime +180とすると半年以上たったものということになります。

ただし、findコマンドは指定したディレクトリ以下も全部探しに言ってしまうので注意してください。

有無を言わさず削除したいのであれば、


find ./ -mtime +180 | xargs ls -l

で削除できます。xargs コマンドは出力された内容を後ろにつける役割があります。まずはxargsコマンドをつけずにfindを実行してみてください。

記事提供:OKWave


リファレンスチャンネルへ

この記事を読み解くキーワード:
ZDNet用語検索
リファレンス
新着
関連ホワイトペーパー
 

企画特集

ZDNet Japan Green ITZDNet Japan Green IT
洞爺湖サミット目前!環境に配慮したGreen ITとは?
「未来の、その先」をどう提言していくか「未来の、その先」をどう提言していくか
クラウドコンピューティングが導く新しいシステム
Techno ExchangeTechno Exchange
全体最適化で進めるCTCのグリーンIT戦略
DELL連載第4回〜「Microsoft System Center」DELL連載第4回〜「Microsoft System Center」
PowerEdgeサーバに最適な運用管理ソリューション後編
今知るべき仮想化情報今知るべき仮想化情報
インフラからアプリケーションまで、これを知らずに仮想化は語れない
ブログ RSS Feed
洞爺湖と環境と私
裏方の裏方日記〜日々是広報 2008/05/20 12:57
プロがなぜ、二次創作を願うのか--Gacktが歌い、三浦建太郎が描く「がくっぽいど」
ミュージシャンのGacktさんと漫画家の三浦建太郎さんという2人のプロが参加しながらも、ユーザーが自由に作品を公開できるという歌声合成ソフト「がくっぽいど」。この開発経緯を開発元に聞いた。
iPhone、月額通信料金は7280円からに--ソフトバンクモバイルが発表
UPDATE ソフトバンクモバイルはiPhoneの通信料金プランを発表した。月額980円のホワイトプランに、データ定額制プラン「パケット定額フル」、「S!ベーシックパック(i)」をあわせ、月額7280円からとなる。
ジョブズ氏引退後のアップルを考える
カリスマ的な創業者が社を去った後、会社の業績が低迷する事例は、ハイテクだけでなく、さまざまな業界で見られる。アップルは「ジョブズ氏後」に備えているのかどうか検討する。