다른 목록의 단어로 시작하는(모음 제외) 목록의 단어 찾기

다른 목록의 단어로 시작하는(모음 제외) 목록의 단어 찾기

두 개의 목록이 있습니다.

  • 첫 번째일반 단어가 포함되어 있습니다.
  • 두번째임의의 자음 문자열(고정 길이)이 있는 줄을 포함합니다.

나는 이것이 필요하다:

  • 자음 문자열 중 하나로 시작하고 모음이 제외된 단어(aeiou)만 포함하는 목록
  • 일치하지 않는 나머지 자음 문자열 목록

이:

  • 일치하는 단어에 대한 일종의 자음 문자열 및 키-값 목록(예: fbr: foobar, foobarbaz또는 명령줄 도구로 더 논쟁하기 쉬운 형식)

시스템은 Cygwin이고 선호되는 쉘은 Bash입니다.

답변1

그리고 zsh:

#! /bin/zsh -

words=(foobar foobarbaz STRING)
strings=(fbr STRN xyz)

vowels=aeiouAEIOU # adjust as needed
typeset -A matches=()
for word ($words) {
  word_without_vowels=${word//[$vowels]}
  for string ($strings)
    if [[ $word_without_vowels = $string* ]] matches[$string]+=" $word"
}
for string ($strings)
  if (( $+matches[$string] )) print -r -- "$string:$matches[$string]"

다음을 제공합니다:

fbr: foobar foobarbaz
STRN: STRING

관련 정보