bash 에서 정규표현식[답변완료]

revival의 이미지

# case 1
X=no
[ "$X" == (n|N|no|NO) ] && echo 1

# case 2
X=no
[ "$X" == \(n\|N\|no\|NO\) ] && echo 1

----
위와 같은 코드를 사용하고 싶은데요.
해보면 항상 아무것도 찍지 않습니다.

분명히 bash 정규표현식에서 지원 하는 걸로 아는데..
뭐가 문제일까요?

익명 사용자의 이미지

일단 ==가 아니고 =~를 써야

revival의 이미지

답변 감사합니다.
오호~! "=~" 를 사용하니 잘되는군요.
첨엔 뭔 소린가 하고 흘렸었는데, 그렇게 해보니 잘 되네요.
ㅡㅡ; 무슨 차이인지는 모르겠는데, 참조할 만한 웹페이지가 있나요?

----
오늘도 행복한 하루~
@from caesar

revival의 이미지

와우~! 정확하게 나와있네요.

The =~ Regular Expression matching operator within a double brackets test expression.

정규표현식 쓸때는 =~ 이걸 쓰라고 되어있군요.
그러고보니 여태까지 정규표현식과 파일 글로빙을 해깔리고 있었네요.
어떤 경우에는 정규표현식이 먹고, 어떤 경우는 안먹는다고 아리송해 했거든요.
파일 글로빙이 마치 정규 표현식 동작되는것처럼 나와서 그게 그건줄 알고 사용했네요.
지금에서야 명확한 차이를 알겠습니다.

고맙고, 감사합니다.~~

----
오늘도 행복한 하루~
@from caesar

neocoin의 이미지

X=y
[[ $X =~ [nN][oO]? ]] && echo "no"
X=no
[[ $X =~ [nN][oO]? ]] && echo "no"
echo 'end'

이거 붙이려고 했는데, 막혀서 추가 합니다. 나머지 경우도 응용해서 쓰세요.

alfalf의 이미지

Version 3.0 이상에서 지원합니다.
No, no, nO, NO를 모두 검출하고 싶으신 거라면 아래와 같이 하시면 됩니다.

X=no
[[ $X =~ [nN][oO] ]] && echo 1
revival의 이미지

답변 감사합니다.

----
오늘도 행복한 하루~
@from caesar

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.