Команда aws ec2 ls показывает user@ip:directory/folder в последней строке. Как удалить это из вывода ls?

Ваше регулярное выражение не запрещает любой символ, оно просто требует одного экземпляра каждого класса. Чтобы ограничить разрешенные символы, измените свой .(, что означает любой символ )на набор разрешенных символов :

.
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#@$?])[a-zA-Z0-9#@$?]{8,}$

Обратите внимание, что если это должна быть строка perl, вам нужно экранировать символы $и @или использовать прочные кавычки('...'илиq{...}). Вы также хотите убедиться, что регулярное выражение работает в режиме ASCII(a-zсоответствует только английским буквам, а .соответствует любому байту ).

Удалите (?=.*?[#@$?]), если вам не требуется хотя бы один из этих символов.

0
14.12.2019, 17:02
2 ответа

Вы можете использовать это:

aws ec2 ls | sed 's@.*:.*/.*@@'

или если это STDERR:

aws ec2 ls 2> >(grep -v'*:.*/.*')
0
28.01.2020, 03:00

Вы можете игнорировать его с помощью aws s3 ls documents/files | head -n -1, которая вернет все, кроме последней строки результатов. Из справочной страницы head:

head [OPTION]... [FILE]...

With no FILE, or when FILE is -, read standard input.

-n, --lines=[-]K

print the first K lines instead of the first 10; with the leading '-', print all but the last K lines of each file

0
28.01.2020, 19:21

Теги

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