ファイル内のすべてのファイル名を一覧表示したいフォルダAそして別のフォルダB~へフォルダAそしてテキストファイルとして保存してみてください。私が使用するコードは次のとおりです。
ls -1 /home/CSV_XXX/* | grep ^'/home/CSV_XXX' >/home/Lists.txt
次のようなファイルがあるとしましょう。CSV_XXXディレクトリへ」/ホーム/CSV_XXX'&含む:
20161010
BDL_EXISTING_CARDS2_20161228.CSV
BDL_EXISTING_COLLATERAL_20161228.CSV
BDL_EXISTING_CUST_ADDRESS_20161228.CSV
.
.
.
'20161010「中にフォルダがあります。CSV_XXXディレクトリ」/ホーム/CSV_XXX/20161010'&含む:
BDL_EXISTING_CARDS2_20161010.CSV
BDL_EXISTING_COLLATERAL_20161010.CSV
BDL_EXISTING_CUST_ADDRESS_20161010.CSV
.
.
.
しかし、私は欲しいものを手に入れませんでした。
最初の試みで得られた結果は次のとおりです。
/home/CSV_XXX/BDL_EXISTING_CARDS2_20161010.CSV
/home/CSV_XXX/BDL_EXISTING_COLLATERAL_20161010.CSV
/home/CSV_XXX/BDL_EXISTING_CUST_ADDRESS_20161010.CSV
.
.
.
/home/CSV_XXX/20161010:
20161010フォルダの内容のリストがありません。
また、ディレクトリをどのように削除できますか?/ホーム/CSV_XXX/「心が変わってリストから削除するとどうなりますか?
単なるリスト(含まれています20161010):
BDL_EXISTING_CARDS2_20161228.CSV
BDL_EXISTING_COLLATERAL_20161228.CSV
BDL_EXISTING_CUST_ADDRESS_20161228.CSV
.
.
.
答え1
find
コマンドを使用する方が良いかもしれません。
例えば
find /home/CSV_XXX -type f -print
CSV_XXXディレクトリの下のすべてのディレクトリにあるすべてのファイルが繰り返し一覧表示されます。
特定のパターンに一致するファイルだけが必要な場合は、次のようにできます。
find /home/CSV_XXX -type f -name '*.csv' -print
次のファイル名のみが印刷されます。.csv
リストにディレクトリを含めるには、その-type f
部分をスキップしてください。
ディレクトリプレフィックスを削除します。
( cd /home/CSV_XXX ; find * -type f -name '*.csv' -print )
答え2
デフォルトではls
再帰はありません。-R
サブディレクトリに配置するには、フラグを追加する必要があります。デフォルトでは、提供されるフルパス名は提供されませんが、これがfind
より良いコマンドであることがわかります。ls
find
リスト出力からファイルを削除するにはgrep -v
。
ls
およびマニュアルページで詳細をfind
確認できますgrep
。