シェルスクリプトを使用して次のファイル名を並べ替えるにはどうすればよいですか?
abcd_exp_4_20180706.txt
abcd_exp_3_20180706.txt
abcd_exp_1_20180706.txt
abcd_exp_2_20180706.txt
abcd_exp_5_20180706.txt
abcd_exp_1_20180707.txt
abcd_exp_5_20180707.txt
abcd_exp_4_20180707.txt
abcd_exp_3_20180707.txt
abcd_exp_2_20180707.txt
期待される出力
abcd_exp_1_20180706.txt
abcd_exp_2_20180706.txt
abcd_exp_3_20180706.txt
abcd_exp_4_20180706.txt
abcd_exp_5_20180706.txt
abcd_exp_1_20180707.txt
abcd_exp_2_20180707.txt
abcd_exp_3_20180707.txt
abcd_exp_4_20180707.txt
abcd_exp_5_20180707.txt
ベストアンサー1
通常、解析の結果は次ls
のとおりです。悪い考え。ただし、すべてのファイル名が同じ形式に従うことがわかっている場合、これは合理的なアプローチです。
$ ls | sort -t_ -k4 -k3,3
説明する
ls |
:lsの出力をパイプで接続します...sort -t_ -k4 -k3
:最初に4番目の列(たとえば)を基準にソートし、次に3番目の列(たとえば)を基準_
にソートする区切り文字として使用します。20180706.txt
1