GNU/Linux >> Linux の 問題 >  >> Linux

フォルダ内の不足しているファイルの名前を印刷するにはどうすればよいですか?

フォルダに2000以上のファイルがありますが、フォルダから欠落しているファイルはほとんどありません。

ファイルの名前は次のようになります

GLDAS_NOAH025SUBP_3H.A2003 001.0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 001.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 001.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 001.1800 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 002.0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 002.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 002.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 002.1800 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 003.0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 003.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 003.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003 003.1800 .001.2015210044609.pss.grb

001 日を示し、0000 時間です。

フォルダにないファイルを見つける方法は?グーグルで答えはほとんど得られませんでしたが、それらを実装する方法を理解できませんでした。

承認された回答:

zshを使用 またはbash4 、そのためにブレース拡張を使用できます:

ls -d GLDAS_NOAH025SUBP_3H.A2003{001..006}.{0000,0600,1200,1800}.001.2015210044609.pss.grb >/dev/null

角かっこに注意してください:

  • {001..006} 001に展開することを意味します 、002 、…006
  • {0000,0600,1200,1800} 上記のすべてに0000を追加します 、06001200 および1800
  • >/dev/null lsの標準出力を回避することです ->標準エラーのみが必要です

ここで、1つのファイルが存在しない場合、ls そのためのエラーが表示されます:

ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.1800.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.1800.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.1800.001.2015210044609.pss.grb: No such file or directory

ksh93を使用 、{001..006}を置き換えます {1..6%.3d}を使用 。


Linux
  1. フォルダ内の多くのファイルの名前を変更するにはどうすればよいですか?

  2. Linux ですべてのスパース ファイルを見つける方法

  3. Linux でファイルとディレクトリを親フォルダーに移動するにはどうすればよいですか?

  1. 複数のファイルの拡張子を変更するにはどうすればよいですか?

  2. フォルダ内のすべてのファイルを印刷しますか?

  3. WWW フォルダに Linux のアクセス許可を設定するにはどうすればよいですか?

  1. 名前にスペースが含まれるフォルダのパスを書き込む方法は??

  2. cPanelファイルマネージャーで新しいフォルダーまたはファイルを作成するにはどうすればよいですか?

  3. Linux の find コマンドを使用してファイルを検索する方法