Bash 将变量中捕获的多个文件名传递给命令(vim)
我试图创建一个脚本,自动打开任何包含特定模式的文件 这就是我迄今为止所取得的成就:Bash 将变量中捕获的多个文件名传递给命令(vim),bash,vim,grep,Bash,Vim,Grep,我试图创建一个脚本,自动打开任何包含特定模式的文件 这就是我迄今为止所取得的成就: xargs -d " " vim < "$(grep --color -r test * | cut -d ':' -f 1 | uniq | sed ':a;N;$!ba;s/\n/ /g')" 有没有一个简单的方法来实现它?我错过了什么 调用xargs的常用方法是通过管道传递带有换行符的参数: grep -Rl test * | xargs vim 请注意,我还将-l参数传递给grep,以列出包含
xargs -d " " vim < "$(grep --color -r test * | cut -d ':' -f 1 | uniq | sed ':a;N;$!ba;s/\n/ /g')"
有没有一个简单的方法来实现它?我错过了什么 调用xargs的常用方法是通过管道传递带有换行符的参数:
grep -Rl test * | xargs vim
请注意,我还将
-l
参数传递给grep
,以列出包含我的模式的文件。调用xargs的常用方法只是通过管道传递带有换行符的参数:
grep -Rl test * | xargs vim
请注意,我还将
-l
参数传递给grep
,以列出包含我的模式的文件。调用xargs的常用方法只是通过管道传递带有换行符的参数:
grep -Rl test * | xargs vim
请注意,我还将
-l
参数传递给grep
,以列出包含我的模式的文件。调用xargs的常用方法只是通过管道传递带有换行符的参数:
grep -Rl test * | xargs vim
请注意,我还将-l
参数传递给grep
,以列出包含我的模式的文件。使用以下方法:
vim -- `grep -rIl test *`
跳过二进制文件中的匹配-I
在第一次匹配时打印文件名-l
xargs
,因为这会导致vim
的错误行为:
Vim: Warning: Input is not from a terminal
使用以下命令:
vim -- `grep -rIl test *`
跳过二进制文件中的匹配-I
在第一次匹配时打印文件名-l
xargs
,因为这会导致vim
的错误行为:
Vim: Warning: Input is not from a terminal
使用以下命令:
vim -- `grep -rIl test *`
跳过二进制文件中的匹配-I
在第一次匹配时打印文件名-l
xargs
,因为这会导致vim
的错误行为:
Vim: Warning: Input is not from a terminal
使用以下命令:
vim -- `grep -rIl test *`
跳过二进制文件中的匹配-I
在第一次匹配时打印文件名-l
xargs
,因为这会导致vim
的错误行为:
Vim: Warning: Input is not from a terminal
我通常会在文件列表中添加以下行:
~/.files.txt&&vim$(cat~/.files.txt|tr“\n”“”)
例如:
grep--color-r test*>~/.files.txt&&vim$(cat~/.files.txt|tr“\n”“”)
我的.bashrc中有以下内容,可以绑定VV
(两次V
,大写)以自动插入:
insertinreadline() {
READLINE_LINE=${READLINE_LINE:0:$READLINE_POINT}$1${READLINE_LINE:$READLINE_POINT}
READLINE_POINT=`expr $READLINE_POINT + ${#1}`
}
bind -x '"VV": insertinreadline " > ~/.files.txt && vim \$(cat ~/.files.txt | tr \"\\n\" \" \")"'
我通常会在文件列表中添加以下行:
~/.files.txt&&vim$(cat~/.files.txt|tr“\n”“”)
例如:
grep--color-r test*>~/.files.txt&&vim$(cat~/.files.txt|tr“\n”“”)
我的.bashrc中有以下内容,可以绑定VV
(两次V
,大写)以自动插入:
insertinreadline() {
READLINE_LINE=${READLINE_LINE:0:$READLINE_POINT}$1${READLINE_LINE:$READLINE_POINT}
READLINE_POINT=`expr $READLINE_POINT + ${#1}`
}
bind -x '"VV": insertinreadline " > ~/.files.txt && vim \$(cat ~/.files.txt | tr \"\\n\" \" \")"'
我通常会在文件列表中添加以下行:
~/.files.txt&&vim$(cat~/.files.txt|tr“\n”“”)
例如:
grep--color-r test*>~/.files.txt&&vim$(cat~/.files.txt|tr“\n”“”)
我的.bashrc中有以下内容,可以绑定VV
(两次V
,大写)以自动插入:
insertinreadline() {
READLINE_LINE=${READLINE_LINE:0:$READLINE_POINT}$1${READLINE_LINE:$READLINE_POINT}
READLINE_POINT=`expr $READLINE_POINT + ${#1}`
}
bind -x '"VV": insertinreadline " > ~/.files.txt && vim \$(cat ~/.files.txt | tr \"\\n\" \" \")"'
我通常会在文件列表中添加以下行:
~/.files.txt&&vim$(cat~/.files.txt|tr“\n”“”)
例如:
grep--color-r test*>~/.files.txt&&vim$(cat~/.files.txt|tr“\n”“”)
我的.bashrc中有以下内容,可以绑定VV
(两次V
,大写)以自动插入:
insertinreadline() {
READLINE_LINE=${READLINE_LINE:0:$READLINE_POINT}$1${READLINE_LINE:$READLINE_POINT}
READLINE_POINT=`expr $READLINE_POINT + ${#1}`
}
bind -x '"VV": insertinreadline " > ~/.files.txt && vim \$(cat ~/.files.txt | tr \"\\n\" \" \")"'