ls -l 出力をパイプで区切られたファイル形式で指定する

ls -l 出力をパイプで区切られたファイル形式で指定する

私は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

おすすめ記事