このコマンドを実行すると
grep _rlnAveragePmax *model*
私は次のような結果を得ます。
run_ct6_it006_model.star:_rlnAveragePmax 0.153500
run_ct6_it007_model.star:_rlnAveragePmax 0.096772
run_it000_model.star:_rlnAveragePmax 0.000000
run_it001_model.star:_rlnAveragePmax 0.008995
run_it002_model.star:_rlnAveragePmax 2.517429e-04
run_it003_model.star:_rlnAveragePmax 0.003727
run_it004_model.star:_rlnAveragePmax 0.056681
run_it005_model.star:_rlnAveragePmax 0.109754
run_it006_model.star:_rlnAveragePmax 0.153500
ただし、上記の出力はアルファベット順にソートされます。生成時間+日付に基づいてソートした場合、出力は次のようになります。
run_it000_model.star:_rlnAveragePmax 0.000000
run_it001_model.star:_rlnAveragePmax 0.008995
run_it002_model.star:_rlnAveragePmax 2.517429e-04
run_it003_model.star:_rlnAveragePmax 0.003727
run_it004_model.star:_rlnAveragePmax 0.056681
run_it005_model.star:_rlnAveragePmax 0.109754
run_it006_model.star:_rlnAveragePmax 0.153500
run_ct6_it006_model.star:_rlnAveragePmax 0.153500
run_ct6_it007_model.star:_rlnAveragePmax 0.096772
生成時間+日付で出力をソートするには、grepコマンドで何をすべきですか?
答え1
macOSを実行しない限り、ファイル作成日は保存されません。ファイルを編集すると、通常は古いバージョンを置き換える新しいファイルが生成されるため、概念は明確に定義されていません。記録された日付は、ファイルが最後に変更された日付です(初期作成およびその後の編集を含む)。
修正時間でファイルをソートする最も簡単な方法は、次のように実行することです。扱いにくい(bash、ksh、またはFishなどの強力な他のシェルとは対照的です)zshで使用できますグローバル予選たとえば、Om
変更時刻に基づいてファイルを並べ替えます(最も古いもの、Om
最も若いものから)。
grep _rlnAveragePmax *model*(Om)
grep
ファイルはコマンドラインで指定された順序でナビゲートされるため、必要な結果が得られます。
答え2
最初に時間の整ったlsを実行し、次に-Hフラグを使用してxargsを介してstdoutをgrepにパイプしてファイル名を含めます(これは1つのファイルに対してのみ行われるため、デフォルトではファイル名は含まれません)。
ls以降の最初のgrepではディレクトリが除外されます(提供された例ではこれが再帰検索ではないと思います)。 lsの後の2番目のgrep、ファイル名のフィルタリング(xargsを除く)
ls -tpQ --quoting-style=shell | grep -v / | grep model | xargs -i grep -H _rlnAveragePmax {}
ワイルドカードの貴重な説明の後の更新:ファイル名に奇妙な文字を含めることができるすべてのケースを説明するために、inode番号がlsから抽出され、inode番号の一致とgrepコマンドのために「find」にパイプされます。 xargsコマンドは2つの{}を区別できないため、xargsは "while read line"に置き換えられました。
シンボリックリンクに従い、ディレクトリなどは含まず、ファイルのみを含めます。この場合、最大深度パラメータは重複しますが(ファイルのみを残して)、パラメータを変更して再帰検索も可能にしました。
ls -ti | cut -d " " -f1 | while read line; do find -L . -maxdepth 1 -type f -inum $line -exec grep -H xxx {} \; ; done