名前に数字とドット、または@tmpを含むすべてのディレクトリを見つけ、日付でソートし、3番目のステートメントの結果を変数に保存するスクリプトを作成しました。しかし、これは常に私に最初のクエリ結果を与えます。正しい結果を得るにはどうすればよいですか?
TL; DR 一致するディレクトリを日付で並べ替え、そのリストの3番目のディレクトリ名を印刷したいと思います。
OLDDATA=`find . \( -name '*@tmp' -o -regex '.*/[0-9.]+' \) -exec ls -t {} + | awk "NR==3 { print }" `
ls -t 結果の例
./1.2.3.4.5.6.102: ./1.2.3.4.5.6.101: ./1.2.3.4.5.6.100: ./1.2.3.4.5.6.99:
./1.2.3.4.5.6.98: ./1.2.3.4.5.6.97: ./1.2.3.4.5.6.96: ./1.2.3.4.5.6.95:
./1.2.3.4.5.6.94: ./1.2.3.4.5.6.93: ./1.2.3.4.5.6.92: ./1.2.3.4.5.6.91:
./1.2.3.4.5.6.90: ./1.2.3.4.5.6.89: ./1.2.3.4.5.6.88: ./1.2.3.4.5.6.87:
ベストアンサー1
場合によっては、正しい説明は次のとおりです。
find . \( -name '*@tmp' -o -regex '.*/[0-9.]+' \) -exec ls -t {} \; | awk 'NR==3'