Можно изменить настройки в настройках Клавиатуры терминала Gnome для создания
Меню> Редактирование> Горячие клавиши...
Затем можно все еще нажать Shift, чтобы сделать независимо от того, что то сочетание клавиш обычно делало бы в терминале, например.
С другой стороны, Вы могли выработать привычку использования
во всех приложениях, чтобы не когда-либо случайно нажатие Ctrl+C в Вашем терминале и иметь его прерывают программу вместо того, чтобы копировать некоторый текст. Те ярлыки относятся ко времени стандартов Стандартного пользовательского доступа IBM. Некоторые люди могли бы помнить их от РЕДАКТИРОВАНИЯ DOS.
Я также запускаю F20, и ваша версия немного отличается от моей.
Я бы предложил отменить его установку и попытаться переустановить. Если это не сработает, возможно, приложение сохранит информацию о конфигурации, возможно, в каталоге $ HOME/.config
. Я бы попытался удалить любые файлы/каталоги, связанные с этим приложением, и попробовать запустить его с чистого листа.
Этот трюк можно использовать, чтобы узнать, к каким каталогам gnome-software
обращается с помощью strace
.
$ strace -s 2000 -o gnome-software.log gnome-software
Затем grep
можно просмотреть файл журнала gnome-software.log
, чтобы узнать, к какому местоположению обращается приложение. Как правило, в приложениях GNOME файлы конфигурации находятся в разделе $ HOME/.config
.
короткий путь
sed 's/<\([^>]\+\)[0-9]\+>/<\1>/g' file
-121--82218- Необходимо проверить, пуст ли $ file _ nm
перед запуском grep
if [ -n "$file_nn" ];
возвращает True, если $ file _ nm НЕ пуст.
Вы могли бы значительно упростить это (и избежать неприятных проблем, присущих разбору ls), сделав что-то вроде:
file_nm=$(find . -maxdepth 1 -name "*abc*");
[ -e "$file_nm" ] && grep -q "search_txt" "$file_nm" &&
echo "string found" ||
echo "string not found"
Однако, как и в Вашем оригинальном примере, это не удастся, если у Вас более одного файла, совпадающего с *abc*
. Поэтому, вместо этого, я бы использовал следующее:
for i in *abc*; do
grep -q "search_txt" "$i" &&
echo "string found in $i" ||
echo "string not found in $i"
done
Если Вас не волнуют совпадения в нескольких файлах, и Вы просто хотите узнать, содержит ли какой-либо из файлов, соответствующих *abc*
строку search_txt
, Вы можете просто сделать
grep -q "search_txt" *abc* && echo "string found" || echo "string not found"
Есть несколько проблем, в том числе и с этим:
-l
на ls
, что означает, что вы будете искать файлы с именами -rw-r--r--
и такиеls
И нет необходимости тестировать вывод grep
, вы можете просто использовать статус выхода. От man grep
:
EXIT STATUS
The exit status is 0 if selected lines are found, and 1 if not found.
Вот упрощенная версия, которая делает то же самое:
if grep -q "search_txt" *abc*
then
echo "string found"
else
echo "string not found"
fi
Попробуйте:
grep "search_txt" /dev/null "$file_nm"
Кормление / dev / null
- GREP
сделает его работать, даже если $ file_nm
не существует, потому что GREP
всегда имеет хотя бы один файл - который является / dev / null
- для работы.