私はこれを試しました
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 -CQ
Q
木出力は次のとおりです。
└── "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"