summaryrefslogtreecommitdiff
path: root/src/pattern.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2025-02-09 11:53:35 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2025-02-09 11:53:35 +0900
commit2b584586ed1caf15429625da981575ee35d407b8 (patch)
tree6a4458be6e685f944214dc4c243234b7b8065cd7 /src/pattern.go
parenta1994ff0abb48dfe4c6951ad67e837f4c767cc39 (diff)
downloadfzf-2b584586ed1caf15429625da981575ee35d407b8.tar.gz
Add --accept-nth option to transform the output
This option can be used to replace a sed or awk in the post-processing step. ps -ef | fzf --multi --header-lines 1 | awk '{print $2}' ps -ef | fzf --multi --header-lines 1 --accept-nth 2 This may not be a very "Unix-y" thing to do, so I've always felt that fzf shouldn't have such an option, but I've finally changed my mind because: * fzf can be configured with a custom delimiter that is a fixed string or a regular expression. * In such cases, you'd need to repeat the delimiter again in the post-processing step. * Also, tools like awk or sed may interpret a regular expression differently, causing mismatches. You can still use sed, cut, or awk if you prefer. Close #3987 Close #1323
Diffstat (limited to 'src/pattern.go')
-rw-r--r--src/pattern.go2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/pattern.go b/src/pattern.go
index 29149fe7..8919ad87 100644
--- a/src/pattern.go
+++ b/src/pattern.go
@@ -403,6 +403,8 @@ func (p *Pattern) transformInput(item *Item) []Token {
tokens := Tokenize(item.text.ToString(), p.delimiter)
ret := Transform(tokens, p.nth)
+ // TODO: We could apply StripLastDelimiter to exclude the last delimiter from
+ // the search allowing suffix match with a string or a regex delimiter.
item.transformed = &transformed{p.revision, ret}
return ret
}