Чтобы отфильтровать ввод в нижнем регистре [закрыто]

-2
27.06.2016, 17:50
2 ответа

Я не уверен, пытаетесь ли вы преобразовать нижнее значение в верхнее или удалить все нижнее. Попробуйте преобразование из нижнего в верхнее.

tr [:lower:] [:upper:] < ws2.txt

Чтобы обрезать строчные символы, вы можете использовать sed

sed -e 's/[a-z]//g' ws2.txt

Или вы можете использовать tr , как предлагает @ fd0

tr -d '[:lower:]' < ws2.txt

. Чтобы обрезать числа и использовать заглавные буквы (что теперь звучит как что ты хочешь).

tr -d '[A-Z0-9]' < ws2.txt
7
28.01.2020, 05:14

Предполагая, что у вас установлен perl (используйте , который perl , и если он установлен, вывод должен выглядеть примерно так / usr / bin / perl ), вы можете сделать однострочник perl и настроить регулярное выражение по своему вкусу.

perl -p -i.bak -w -e 's/[a-z]//g' test.txt            # strips lowercase

или

perl -p -i.bak -w -e 's/([a-z])/\U$1/g' test.txt     # converts to uppercase

-p указывает Perl написать программу за вас. -i указывает, что нужно сделать резервную копию входного файла test.txt и назвать его test.txt.bak . -w включает предупреждения (хорошо, если вы ошиблись или неправильно набрали что-то), а -e говорит, что следующий текст - это код, который вы хотите выполнить.

0
28.01.2020, 05:14

Теги

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