我想创建一个具有一个必需参数和两个可选参数的函数:
files:linenumbers:linecontents
并以递归方式搜索当前目录并打印
列表for(int i=0;i<n;i++ ){
System.out.println(a[i]);
}
这样做的最佳方式是什么?
用于处理Fish中的函数参数和find / grep命令管道。
答案 0 :(得分:1)
这是我迄今为止提出的最好的方法:
function findin --argument searchterm
set -q argv[1]; and echo "Searching for $searchterm"; or begin;
echo "searchterm is required."; return 1; end;
set -q argv[2]; and set -l filenamepattern $argv[2]; or set filenamepattern ".*"
set -q argv[3]; and set -l grepopt $argv[3]; or set grepopt '-in'
find . -type f -print0 | grep -iz "$filenamepattern" | xargs -0 grep "$searchterm" $grepopt
echo "just ran:\n find . -type f -print0 | grep -iz \"$filenamepattern\" | xargs -0 grep \"$searchterm\" $grepopt"
end
像这样调用:
><>findin
searchterm is required.
><>findin 'love'
anyfile.html:343:/* research -> Healing of Love */
><>findin 'love' 'only.one'
only.one:343:/* research -> Healing of Love */
><>findin 'love' 'index.html' ''
index.html:/* case sensitive without line#s-> healing of love */