Исключить строку из поиска по шаблону в оболочке

== сравнивает ссылки на объекты в Java и не является исключением для объектов String.

Для сравнения фактического содержимого объектов (в том числе String) необходимо использовать equals.

Если сравнение двух объектов String с использованием == оказывается true, это связано с тем, что объекты String были интернированы, а виртуальная машина Java имеет несколько ссылки указывают на тот же экземпляр String. Не следует ожидать сравнения одного объекта String, содержащего то же содержимое, что и другой объект String, используя == для оценки как true.

11
задан skaffman 23 March 2010 в 13:27
поделиться

2 ответа

Для этого можно использовать команду find:

$ find . -name '*.txt' -a ! -name '*Thomas.txt'
16
ответ дан 3 December 2019 в 02:30
поделиться

С Bash

shopt -s extglob
ls !(*Thomas).txt

, где первая строка означает «установить расширенное подстановку», см. руководство для получения дополнительной информации Информация .

Другие способы:

find . -type f \( -iname "*.txt" -a -not -iname "*thomas*" \)

ls *txt |grep -vi "thomas"
14
ответ дан 3 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: