私はUnixに初めて触れ、助けが必要です。ls -l
コマンドを実行して(実際にls -alR
は)出力をファイルにパイプすると、返されたlsフィールドを区切るためにスペースが使用されます。本質的に私が達成したいのは、lsフィールドをタブまたはパイプ文字(両方とも機能する必要がある)で区切ることです。コマンドを表示してpr
スペースをタブに置き換え始めましたが、ls出力にスペースの数が異なるため、機能しませんでした。これにより、このファイルをインポートするときにエラーフィールドが発生しました。
ベストアンサー1
後でこの出力を分析したい場合はブロックします。バラよりこのページ理由をよりよく説明するために。とにかく、必要な情報を取得するのは非常に難しいですls
。特にファイル名にスペースやその他の特殊文字が含まれている場合は特にそうです。 csvなどをビルドする場合は、より良いオプションは次の-printf
オプションを使用することですfind.
。このコマンドを使用すると起動します。
find . -printf "%M|%n|%u|%s|%P\n" > output
これはコマンドと同じようにスタートアップディレクトリで繰り返されますls
。パイプで区切られたフィールドを持つファイルに、権限、リンク数、所有者、グループ、サイズ、およびファイル名をダンプします。詳しくはマニュアルページをご覧くださいfind
。