次の文書が与えられた場合:
ABC38388.SC01.StatueGrade_MKP
ABC38388.SC02.Statue_GKP
DEF38389.SC03.Statue_HKP
XYZ38390.SC00.Statue_WKP
次の値に基づいてどのようにリストできますかSC
?
XYZ38390.SC00.Statue_WKP
ABC38388.SC01.StatueGrade_MKP
ABC38388.SC02.Statue_GKP
DEF38389.SC03.Statue_HKP
ベストアンサー1
ファイル名にスペースやその他の奇妙な文字が含まれていないこの特別な場合は、ls
次のようにパイプできますsort
。
$ ls -d -- *.SC* | sort -t. -k2
XYZ38390.SC00.Statue_WKP
ABC38388.SC01.StatueGrade_MKP
ABC38388.SC02.Statue_GKP
DEF38389.SC03.Statue_HKP
-t
フィールド区切り文字を設定し、2番目のフィールド-k2
で始まる行の部分に基づいてソートするように指示します(2番目のフィールドの場合)。sort
-k2,2
ただ)。
より複雑な場合は、各ファイル名の後にNULL文字()を印刷してから、その\0
オプションを使用してGNUにパイプしてNULL区切りの行を読み取るように指示し、最後に次のように変更します。sort
-z
tr
\0
\n
printf '%s\0' *SC* | sort -zt. -k2 | tr '\0' '\n'