단어가 알파벳순인지 아닌지 알아 내기 위해 bash (no sed, awk, perl, ...)를 찾고 싶습니다. 즉, 모든 문자는 . 예 : bdjkz가 참일 경우 ahjmno가 참일 경우 sdgla가 거짓입니다.단어가 알파벳 순서인지 확인하는 방법
저는 문자에 대한 ascii 값을 비교하는 데 이미 어려움을 겪고 있습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 그것이 많은 도움이 될 것입니다!
감사
이단어가 알파벳순인지 아닌지 알아 내기 위해 bash (no sed, awk, perl, ...)를 찾고 싶습니다. 즉, 모든 문자는 . 예 : bdjkz가 참일 경우 ahjmno가 참일 경우 sdgla가 거짓입니다.단어가 알파벳 순서인지 확인하는 방법
저는 문자에 대한 ascii 값을 비교하는 데 이미 어려움을 겪고 있습니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 그것이 많은 도움이 될 것입니다!
감사
이당신은 사용할 수 있습니다
p='bdjkz'
q=$(fold -w1 <<< "$p"|sort|tr -d "\n")
[[ "$p" == "$q" ]] && echo "in alphabetical order" || echo "not in alphabetical order"
을 다른 명령 줄 도구 (그러나 awk
, sed
, perl
를) 이용할 수있는 경우에, 당신은 시도 할 수 있습니다 :
[[ "YOURSTRING" = "$(echo "YOURSTRING" | grep -o '.' | sort -n |tr -d '\n')" ]] && \
echo "Alphabetic order"
[[ ... ]]
는 exp3210을 테스트하고 있습니다.echo "YOURSTRING" | grep -o '.'
인쇄 "YOURSTRING"
(-o '.'
에서 선에 모든 문자의 내부 동작 출력이 "YOURSTRING" =
문자열 비교"$(...)"
캡처grep
의 새 버전)sort -n |
종류의 출력 ... tr -d '\n'
가 다시 가입 (후행 새로운 라인 문자를 삭제하여) (5)의 문자순수 bash는 솔루션 (외부 도구를 사용하지), 문자열 내에서 문자를 해결하기 위해 매개 변수 확장을 사용하여 :
function compare() {
word=$1
for ((pos=0; pos<${#word}-1; pos++)) ; do
[[ ${word:pos:1} < ${word:pos+1:1} ]] || return 1
done
return 0
}
이
과 테스트for word in bdjkz ahjmno sdgla ; do
if compare $word ; then
echo $word ordered
else
echo $word not ordered
fi
done
+1 매우 인상적입니다. –
s=($(echo "existingString" | grep -o .)) # put each character of input string in an array.
k=($(printf '%s\n' "${s[@]}" | sort)) # sorts the input string
if [[ "${s[*]}" == "${k[*]}" ]]; then # comparing the input string array with sorted array
echo "alphabetical"
else
echo "not alphabetical"
fi
현재 시도를 게시하십시오. – fedorqui
나는 아무것도 가지고 있지 않다. 나는 어떻게 서로 문자를 비교할 지 모른다. – Rmo