Я хочу найти все последовательности, расположенные в алфавитном порядке в txt файле. не сортировка. в текстовом файле есть-
aedftg
wqof
abcdef
oufn
pqrs
aabcd
Мне нужен вывод - abcdef и pqrs
, также без повторения символов, таких как 'aabcd'
cat homework.txt | while read aline; do
stringORIG=$(echo -n "$aline" | sed 's/\(.\)/\1\n/g')
stringABC=$(echo -n "$aline" | sed 's/\(.\)/\1\n/g' | sort)
if [ "$stringORIG" == "$stringABC" ]; then
echo "$aline"
fi
done
.
abcdef
pqrs
ps... если вы не хотите использовать команду sort, вы можете преобразовать каждый char в int и использовать оператор if для проверки того, что последний char меньше следующего...
Просто для полноты, решение, основанное на awk
-, где обычное отношение шаблона и данных заменено местами:
awk 'BEGIN{ref="abcdefghijklmnopqrstuvwxyz"} ref ~ $0' file.txt
Это будет интерпретировать строки в файле как регулярные выражения, с которыми сопоставляется «опорная» строка отсортированных символов от a
до z
. Только если есть совпадение (, что означает, что строка в строке является подстрокой -строки a... z
), строка будет напечатана.