Я не уверен, пытаетесь ли вы преобразовать нижнее значение в верхнее или удалить все нижнее. Попробуйте преобразование из нижнего в верхнее.
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
Предполагая, что у вас установлен 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
говорит, что следующий текст - это код, который вы хотите выполнить.