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"

관련 정보