이것은 내 처음으로 여기에 게시하므로 나와 함께하시기 바랍니다.BASH Palindrome Checker
나는 배쉬 할당을 받았지만 교수는 전혀 도움이되지 않아 그의 노트도있다.
우리의 임무는 파일에서 문장을 필터링하고 출력하는 것입니다. 이 경우, 디렉토리는 다음과 같습니다
/usr/share/dict/words
단어의 길이는 3에서 45 범위와 소문자를 (주어진 사전이 문자와 uppercases뿐만 아니라 소문자가) 필터로되어있다. 즉 "-dkas-das"이므로 "q-evvavve-q"와 같은 것이 회문으로 간주 될 수 있지만 올바른 결과로 받아 들여서는 안됩니다.
어쨌든, 나는 x 개의 단어를 걸러 낼 수 있으며 리턴 할 수 있습니다 (소문자 만 필터링하지 않음).
grep "^...$" /usr/share/dict/words |
grep "\(.\).\1"
그리고 나는 그렇게 5 개 글자 단어 및 7에 대한 후속 라인을 사용할 수 있습니다
grep "^.....$" /usr/share/dict/words |
grep "\(.\)\(.\).\2\1"
은 그러나 교수가 그것을 원하지하지 않습니다. 루프를 사용해야합니다. 나는 컨셉을 얻지 만 문법을 모른다. 내가 말했듯이, 노트는별로 도움이되지 않는다.
내가 시도한 것은 x = ...와 y = .. 변수를 설정하고 while 루프에서 x = $ x $ y를 가졌지 만 구문 오류가 발생하지 않았고 x + = ..도 않았다.
도움을 주시면 감사하겠습니다. 심지어 소문자가 아닌 문자를 걸러 냈습니다.
감사합니다.
편집 :
당신이 솔루션에 대한 해결책이나 힌트를 제공하는 경우, 가장 간단한 방법이 선호된다. 두 개의 grep 문과 루프를 사용하는 것이 좋습니다.
다시 한번 감사드립니다. 여기
좋아, 작동하지만 나에게 단어 목록이 표시되고 모든 단어에 대해 ENTER를 눌러야합니다. 그것이 자격이된다면 나타나고 그렇지 않다면 공란으로 남을 것입니다. 또한 grep을 사용해야하지만 여전히 감사합니다. – Greg
모든 메아리가 끝난 후 Enter 키를 눌러야 이상합니다. 그냥 느린가요? 내 솔루션에서'grep'을 사용하고 있습니다 :'egrep'은'grep -E'와 같습니다. –
흠, 아직 입력해야 할 일을하고 있습니다. 기억한다면, 처음 복사했을 때 작동했지만 추락했습니다. 차이가 나는 경우 퍼티를 사용하고 있습니다. – Greg