質問編集履歴

4 修正

coko1

coko1 score 184

2016/10/04 16:13  投稿

ディレクトリ名 スペース エスケープ
以前に解決してもらった質問にはなるのですが、問題が新たに発生したため解決策を教えていただきたいです。
コマンドライン:↓
find $path -type d | grep -E -v -f list_test.txt | xargs ls -lgG
$path : 検索ディレクトリ
grep : パターンファイルでfind検索時除外するディレクトリ以下の情報指定
パターンファイル記述例 : /aaa/bbb/ccc/ddd/fff (/fff 以下の情報を除外)
表示結果:↓
/aaa/bbb/ccc/ddd/eee:
合計 60
-rwxrwxrwx 1 5424 1月 13 09:51 2016 a_01.txt
-rwxrwxrwx 1 3748 1月 13 09:53 2016 a_02.txt
-rwxrwxrwx 1 4732 2月 13 09:55 2016 a_03.txt
-rwxrwxrwx 1 1323 2月 7 17:05 2016 a_04.txt
-rwxrwxrwx 1 3456 3月 4 16:27 2016 a_05.txt
/aaa/bbb/ccc/ddd/ggg:
合計 12
-rwxrwxrwx 1 638 11月 18 11:40 2015 b_01.txt
-rwxrwxrwx 1 760 11月 26 12:00 2015 b_02.txt
-rwxrwxrwx 1 25 10月 26 11:34 2015 b_02.txt
※表示結果の3列目はサイズですが、桁数が違っても終端を合わせるようになっています。
問題となるのはfindの結果をlsする際にディレクトリ名にスペースが入っているものがls: cannot accessエラーとして認識されてしまうことです。以前は表示形式を変えてなんとか対応させたのですが、やはりこの表示形式を保ちたいのです。なんとかならないでしょうか?
問題となるのはfindの結果をlsする際にディレクトリ名にスペースが入っているものがスペースごとに別のディレクトリとして取り扱われ、ls: cannot accessエラーとして認識されてしまうことです。以前は表示形式を変えてなんとか対応させたのですが、やはりこの表示形式を保ちたいのです。なんとかならないでしょうか?
変更後コマンド:↓
find $path -printf "%M %2n %10s %TY-%Tm-%Td %TH:%TM %p\n" |grep -E -v -f list_test.txt
表示形式変更時(現在):↓
-rwxrwxrwx 1      8326 2016-12-09 11:25 /aaa/bbb/ccc/ddd/eee/a_01.txt
-rwxrwxrwx 1      3778 2016-09-09 12:32 /aaa/bbb/ccc/ddd/eee/a_02.txt
-rwxrwxrwx 1     15902 2016-09-08 12:42 /aaa/bbb/ccc/ddd/eee/a_03.txt
-rwxrwxrwx 1      1687 2016-01-20 18:13 /aaa/bbb/ccc/ddd/eee/a_04.txt
-rwxrwxrwx 1      1927 2015-12-07 09:58 /aaa/bbb/ccc/ddd/eee/a_05.txt
  • Linux

    5776 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

3 修正

coko1

coko1 score 184

2016/10/04 16:11  投稿

ディレクトリ名 スペース エスケープ
以前に解決してもらった質問にはなるのですが、問題が新たに発生したため解決策を教えていただきたいです。
コマンドライン:↓
find $path -type d | grep -E -v -f list_test.txt | xargs ls -lgG
$path : 検索ディレクトリ
grep : パターンファイルでfind検索時除外するディレクトリ以下の情報指定
パターンファイル記述例 : /aaa/bbb/ccc/ddd/fff (/fff 以下の情報を除外)
表示結果:↓
/aaa/bbb/ccc/ddd/eee:
合計 60
-rwxrwxrwx 1 5424 1月 13 09:51 2016 a_01.txt
-rwxrwxrwx 1 3748 1月 13 09:53 2016 a_02.txt
-rwxrwxrwx 1 4732 2月 13 09:55 2016 a_03.txt
-rwxrwxrwx 1 1323 2月 7 17:05 2016 a_04.txt
-rwxrwxrwx 1 3456 3月 4 16:27 2016 a_05.txt
/aaa/bbb/ccc/ddd/ggg:
合計 12
-rwxrwxrwx 1 638 11月 18 11:40 2015 b_01.txt
-rwxrwxrwx 1 760 11月 26 12:00 2015 b_02.txt
-rwxrwxrwx 1 25 10月 26 11:34 2015 b_02.txt
※表示結果の3列目はサイズですが、桁数が違っても終端を合わせるようになっています。
問題となるのはディレクトリ名にスペースが入っているものがls: cannot accessエラーとして認識されてしまうことです。以前は表示形式を変えてなんとか対応させたのですが、やはりこの表示形式を保ちたいのです。なんとかならないでしょうか?
問題となるのはfindの結果をlsする際にディレクトリ名にスペースが入っているものがls: cannot accessエラーとして認識されてしまうことです。以前は表示形式を変えてなんとか対応させたのですが、やはりこの表示形式を保ちたいのです。なんとかならないでしょうか?
変更後コマンド:↓
find $path -printf "%M %2n %10s %TY-%Tm-%Td %TH:%TM %p\n" |grep -E -v -f list_test.txt
表示形式変更時(現在):↓
-rwxrwxrwx 1      8326 2016-12-09 11:25 /aaa/bbb/ccc/ddd/eee/a_01.txt
-rwxrwxrwx 1      3778 2016-09-09 12:32 /aaa/bbb/ccc/ddd/eee/a_02.txt
-rwxrwxrwx 1     15902 2016-09-08 12:42 /aaa/bbb/ccc/ddd/eee/a_03.txt
-rwxrwxrwx 1      1687 2016-01-20 18:13 /aaa/bbb/ccc/ddd/eee/a_04.txt
-rwxrwxrwx 1      1927 2015-12-07 09:58 /aaa/bbb/ccc/ddd/eee/a_05.txt
  • Linux

    5776 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

2 修正

coko1

coko1 score 184

2016/10/04 16:09  投稿

ディレクトリ名 スペース エスケープ
以前に解決してもらった質問にはなるのですが、問題が新たに発生したため解決策を教えていただきたいです。
コマンドライン:↓
find $path -type d | grep -E -v -f list_test.txt | xargs ls -lgG
$path : 検索ディレクトリ
grep : パターンファイルでfind検索時除外するディレクトリ以下の情報指定
パターンファイル記述例 : /aaa/bbb/ccc/ddd/fff (/fff 以下の情報を除外)
表示結果:↓
/aaa/bbb/ccc/ddd/eee:
合計 60
-rwxrwxrwx 1 5424 1月 13 09:51 2016 a_01.txt
-rwxrwxrwx 1 3748 1月 13 09:53 2016 a_02.txt
-rwxrwxrwx 1 4732 2月 13 09:55 2016 a_03.txt
-rwxrwxrwx 1 1323 2月 7 17:05 2016 a_04.txt
-rwxrwxrwx 1 3456 3月 4 16:27 2016 a_05.txt
/aaa/bbb/ccc/ddd/ggg:
合計 12
-rwxrwxrwx 1 638 11月 18 11:40 2015 b_01.txt
-rwxrwxrwx 1 760 11月 26 12:00 2015 b_02.txt
-rwxrwxrwx 1 25 10月 26 11:34 2015 b_02.txt
※表示結果の3列目はサイズですが、桁数が違っても終端を合わせるようになっています。  
問題となるのはディレクトリ名にスペースが入っているものがls: cannot accessエラーとして認識されてしまうことです。以前は表示形式を変えてなんとか対応させたのですが、やはりこの表示形式を保ちたいのです。なんとかならないでしょうか?
※表示結果の3列目はサイズですが、桁数が違っても終端を合わせるようになっています。
変更後コマンド:↓
find $path -printf "%M %2n %10s %TY-%Tm-%Td %TH:%TM %p\n" |grep -E -v -f list_test.txt
表示形式変更時(現在):↓
-rwxrwxrwx 1      8326 2016-12-09 11:25 /aaa/bbb/ccc/ddd/eee/a_01.txt
-rwxrwxrwx 1      3778 2016-09-09 12:32 /aaa/bbb/ccc/ddd/eee/a_02.txt
-rwxrwxrwx 1     15902 2016-09-08 12:42 /aaa/bbb/ccc/ddd/eee/a_03.txt
-rwxrwxrwx 1      1687 2016-01-20 18:13 /aaa/bbb/ccc/ddd/eee/a_04.txt
-rwxrwxrwx 1      1927 2015-12-07 09:58 /aaa/bbb/ccc/ddd/eee/a_05.txt
  • Linux

    5776 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

1 修正

coko1

coko1 score 184

2016/10/04 16:02  投稿

ディレクトリ名 スペース エスケープ
以前に解決してもらった質問にはなるのですが、問題が新たに発生したため解決策を教えていただきたいです。
コマンドライン:↓
find $path -type d | grep -E -v -f list_test.txt | xargs ls -lgG
$path : 検索ディレクトリ
grep : パターンファイルでfind検索時除外するディレクトリ以下の情報指定
パターンファイル記述例 : /aaa/bbb/ccc/ddd/fff (/fff 以下の情報を除外)
表示結果:↓
/aaa/bbb/ccc/ddd/eee:
合計 60
-rwxrwxrwx 1 5424 1月 13 09:51 2016 a_01.txt
-rwxrwxrwx 1 3748 1月 13 09:53 2016 a_02.txt
-rwxrwxrwx 1 4732 2月 13 09:55 2016 a_03.txt
-rwxrwxrwx 1 1323 2月 7 17:05 2016 a_04.txt
-rwxrwxrwx 1 3456 3月 4 16:27 2016 a_05.txt
/aaa/bbb/ccc/ddd/ggg:
合計 12
-rwxrwxrwx 1 638 11月 18 11:40 2015 b_01.txt
-rwxrwxrwx 1 760 11月 26 12:00 2015 b_02.txt
-rwxrwxrwx 1 25 10月 26 11:34 2015 b_02.txt
問題となるのはディレクトリ名にスペースが入っているものがls: cannot accessエラーとして認識されてしまうことです。以前は表示形式を変えてなんとか対応させたのですが、やはりこの表示形式を保ちたいのです。なんとかならないでしょうか?
問題となるのはディレクトリ名にスペースが入っているものがls: cannot accessエラーとして認識されてしまうことです。以前は表示形式を変えてなんとか対応させたのですが、やはりこの表示形式を保ちたいのです。なんとかならないでしょうか?
※表示結果の3列目はサイズですが、桁数が違っても終端を合わせるようになっています。
  • Linux

    5776 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る