Як передавати параметр у команді linux в кінці рядка


0

Я хотів би передати параметр в кінці рядка, коли я даю команду в терміналі.

Тому я хотів би щось подібне до прикладу нижче

find /path/to/directory -type f -exec grep -irl "SEARCH_PATTERN" {} \;

щось на зразок цього формату:

find /path/to/directory -type f -exec grep -irl "$1" {} \; < "SEARCH_PATTERN"

і таким чином я не повинен щоразу йти і змінювати команду в -irl "SEARCH_PATTERN" частина. Замість цього я просто дам це більш легко в кінці лінії.

Спасибі заздалегідь

Відповіді:


2

Створити функцію:

mygrep() { find /path -type f -exec grep -irl "$1" {} +; }

mygrep waldo

Насправді, чому вам навіть потрібно find?

mygrep() { grep -irl "$1" /path; }

Знайти не має значення. Це було просто в моєму прикладі. Я хотів би передати його без створення нових файлів, якщо це можливо. В diff <$(cat xyz1) <$(cat xyz2) мислення, але наприкінці.
limitcracker

@limitCracker Я не можу зрозуміти, що ви дійсно хочете зробити. Будь ласка, спробуйте переформулювати його. BTW з alias можна замінити цілу команду на параметри, наприклад, alias Ls='ls -sF ' і після того, як Ви можете зателефонувати Ls here there замість того, щоб писати ls -sF here there, але навіть Ls -d here замість ls -sF -d here. Якщо потрібно пройти "всередині" Параметри, необхідні для функції, як сказано вище. Якщо тільки наприкінці досить alias.
Hastur

0

Тільки те, що я можу думати прямо зараз, для цього конкретного випадку, щоб створити змінну середовища SEARCH_PATTERN і випадково це кожен раз, коли ви хочете використовувати його.

Швидкий приклад;

$ SEARCH_PAT="abc"
$ find /path -type f -exec grep -irl "${SEARCH_PAT}" {} \;
$ SEARCH_PAT="xyz"
$ find /path -type f -exec grep -irl "${SEARCH_PAT}" {} \;

і т.д.


Це ще більш обтяжливо SEARCH_PAT кожного разу. Хочу натиснути Вгору потім Ctrl + w , щоб видалити останнє SEARCH_PAT і потім Shift + Insert , щоб ввести нове SEARCH_PAT в кінці рядка.
limitcracker
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.