fzfを使用してツリーからフィールドを取得する

fzfを使用してツリーからフィールドを取得する

私はこれを試しました

tree -C | fzf --ansi | awk -F'|' '{print $NF}'
├── repo.git/
│   ├── folder/
│   │   ├── subfolder/
│   │   │   ├── output.0
│   │   │   └── traces.1
│   │   ├── subfolder/
│   │   │   └── fold/
│   │   │       └── subtree/
│   │   │           ├── .gitignore
│   │   │           ├── stamp-h1 item
│   │   │           └── stamp-h2

stamp-h1 itemつまり、ファイル名をつかみたいです。

ベストアンサー1

必ず使用する必要がある場合は、二重引用符を使用してファイル名を引用する必要がありますtree。だからtree -CQQ
出力は次のとおりです。

└── "repo.git"
    └── "folder"
        ├── "subfolder"
        │   ├── "output.0"
        │   └── "traces.1"
        └── "subfolder2"
            └── "fold"
                └── "subtree"
                    ├── "stamp-h1 item"
                    └── "stamp-h2"

ファイル名を取得するには、正規表現を適用してsedそれを取得できます" "。したがって、コードは次のようになります。

tree -CQ | fzf --ansi | sed 's/.*\"\(.*\)\"/\1/g'

上記のコードを選択すると、repo.git次のようになります。

repo.git

「stamp-h1項目」を選択すると、次のようになります。

stamp-h1 item

または、それらの間の値を印刷するには、以下を"使用する必要があります。

tree -CQ | fzf --ansi | sed 's/.*\"\(.*\)\"/"\1"/g'
#Example output:
"stamp-h1 item"

おすすめ記事