自分に関連するコードを出力するために、tail、head、grep を組み合わせて使用しています。関数を見つけて、要点をすぐに理解するのに役立ちます。私はこれを 1 日に約 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 の 1 つを選択します。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;
}
見つかったアイテムのすべてのインスタンスを取得する方法を知っていれば、それを理解できると思います。
メルシーと感謝