我一直在使用 tail、head 和 grep 的组合来打印出与我相关的代码。它可以帮助我找到功能并直入主题。我每天这样做大约 30 到 40 次,所以我想我会在这方面寻求一些帮助,因为我不擅长 sh 脚本。
我最终想要的命令格式类似于 giveme "searchstring" -nn << 其中 nn 是要给 head 的数字。错误..继续
以下是我目前正在做的事情
grep -rl searchitem ./
cat ./filename | grep -n searchitem
tail -n +line ./filename | head -numberoflinestodisplay
例子:
jezzy@forum:/var/www/sgs# grep -rl insert_into_selectbox ./
./bin/ext/js/functions_edit.js
./src/ext/js/functions_edit.js
jezzy@forum:/var/www/sgs# cat ./bin/ext/js/functions_edit.js | grep -n insert_into_selectbox
195: for (key in data) insert_into_selectbox(selectbox, data[key], key, 0);
232: insert_into_selectbox(selectbox, data[key], key,1);
273: for (key in data) if (key!="_overload_") insert_into_selectbox(selectbox, data[key], key, 0);
289:function insert_into_selectbox(selectbox,text,value,selected) {
323: insert_into_selectbox(id,right.value,right.value,1);
334: insert_into_selectbox(id,options_right[i].text,options_right[i].value,1);
然后我选择一个适合我的 grep。我不介意 bash 脚本是否对所有出现的 grep 都执行此操作。它会教我更具体地进行搜索。
jezzy@forum:/var/www/sgs# tail -n +289 ./bin/ext/js/functions_edit.js | head -30
function insert_into_selectbox(selectbox,text,value,selected) {
if (text=="" || value=="") return;
var obj = getObj(selectbox);
var index = _selectbox_find(obj, value);
if (index == -1) {
index = obj.options.length;
obj.options[index] = new Option(text,value);
}
if (!obj.multiple && selected) obj.options[index].selected = true;
}
如果我知道如何获取找到的项目的所有实例,我想我可以弄清楚。
谢谢,谢谢