両方のドライブのUnixパス名ファイルの並べ替え

両方のドライブのUnixパス名ファイルの並べ替え

両方のディレクトリのパス名を含むファイルがあります。親ディレクトリに関係なく、ファイル名でソートしたいです。

テキストは次のとおりです。

/mnt/samsung/a/b/c
/mnt/samsung/d/e/f
...
/mnt/wd/a/b/c
/mnt/wd/d/e/f

次のようにソートしたいと思います。

/mnt/samsung/a/b/c
/mnt/wd/a/b/c
/mnt/samsung/d/e/f
/mnt/wd/d/e/f

私はこれをしようとしています:

 sort -t / -k3  

しかし、うまくいきません。

私も次のことを試しました。

  sort -t "/" -k3 
  sort -t "/" -k2 
  sort -t / -k2

それらのどれも仕事がありません。

私が望むものは何が私に与えるでしょうか?

ベストアンサー1

$ sort -t '/' -k 6 file
/mnt/samsung/a/b/c
/mnt/wd/a/b/c
/mnt/samsung/d/e/f
/mnt/wd/d/e/f

指定されたパスの場合、パスの末尾にあるファイル名は/各行の6番目の区切りフィールドです(最初のフィールドの長さは0です)。

--debugGNUで使用すると、sort次のように出力されます。

$ sort --debug -t '/' -k 6 file
sort: text ordering performed using simple byte comparison
/mnt/samsung/a/b/c
                 _
__________________
/mnt/wd/a/b/c
            _
_____________
/mnt/samsung/d/e/f
                 _
__________________
/mnt/wd/d/e/f
            _
_____________

...最後のパスコンポーネントがソートキーとして使用されていることを示します。

また、関連性があるかもしれません(実際タスクは次のとおりです。

おすすめ記事