найти последовательности в алфавитном порядке

Я хочу найти все последовательности, расположенные в алфавитном порядке в txt файле. не сортировка. в текстовом файле есть-

aedftg
wqof
abcdef
oufn
pqrs
aabcd

Мне нужен вывод - abcdef и pqrs

, также без повторения символов, таких как 'aabcd'

-1
20.11.2016, 04:52
2 ответа
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 меньше следующего...

0
28.01.2020, 05:07

Просто для полноты, решение, основанное на awk-, где обычное отношение шаблона и данных заменено местами:

awk 'BEGIN{ref="abcdefghijklmnopqrstuvwxyz"} ref ~ $0' file.txt

Это будет интерпретировать строки в файле как регулярные выражения, с которыми сопоставляется «опорная» строка отсортированных символов от aдо z. Только если есть совпадение (, что означает, что строка в строке является подстрокой -строки a... z), строка будет напечатана.

1
29.10.2020, 14:49

Теги

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