Ваше регулярное выражение не запрещает любой символ, оно просто требует одного экземпляра каждого класса. Чтобы ограничить разрешенные символы, измените свой .
(, что означает любой символ )на набор разрешенных символов :
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#@$?])[a-zA-Z0-9#@$?]{8,}$
Обратите внимание, что если это должна быть строка perl
, вам нужно экранировать символы $
и @
или использовать прочные кавычки('...'
илиq{...}
). Вы также хотите убедиться, что регулярное выражение работает в режиме ASCII(a-z
соответствует только английским буквам, а .
соответствует любому байту ).
Удалите (?=.*?[#@$?])
, если вам не требуется хотя бы один из этих символов.
Вы можете использовать это:
aws ec2 ls | sed 's@.*:.*/.*@@'
или если это STDERR:
aws ec2 ls 2> >(grep -v'*:.*/.*')
Вы можете игнорировать его с помощью 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