-4

Я задаю только один вопрос, чтобы избежать спама. У меня есть 3 ситуации, когда я не знаю, какие команды мне следует использовать. Они есть:

  1. Перечислите все файлы, которые имеют как минимум 3 буквы в названии.

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

  3. У меня есть файл BD.txt со следующим содержанием (например):

Mary:Boston:20
John:New York:18
Paul:New York:25
Andrew:New Paris:30

Я должен показать, сколько людей живет в Нью-Йорке. Как правило, я использую:

cat BD.txt | grep **place_name** | wc -l

Но это работает, только если я хочу найти одно слово. Если я наберу «New York», команда будет считать все строки с именем «New», игнорируя остальные (из-за пробела).

Что я должен использовать в этих ситуациях?

1 ответ1

1

Я постараюсь помочь, не делая твою домашнюю работу за тебя -

Вопрос 1 - Список файлов: "?"символ "обозначает ровно 1 (не нулевой) подстановочный знак, а символ" * "обозначает 0 или более символов.

Вопрос 2 - ls -l отобразит права доступа для каждого файла в начале строки, и команда cut может быть использована для выбора символа или диапазона символов. В случае ls -l, если третьим символом является "w", это означает, что владелец имеет права на запись.

Вопрос 3 - Есть пара вещей, которые вам не хватает - когда вы используете grep так, как вы думаете, вы не используете символы «*» - grep ищет данную подстроку. Символы «и» используются для указания строки символов - включая символ пробела - в качестве одного параметра. Символ '\' заставит любой символ, который будет сразу после этого, интерпретироваться буквально, а не как нечто, расширяемое оболочкой. (Этот ответ дает как минимум 3 решения, кстати)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .