특수문자 [ ] 에 대해서 공부중입니다.

bigblues의 이미지

[ ] 이것에 대해서 공부중인데요.
이해가 안가서 ^^;
리눅스 / 유닉스 처음 공부하는 학생입니다. 3달이 넘게 햇는데도 기초는 한없이 부족하내요.
아무리 연습하려고 해도 항상 막히는것뿐입니다. ㅠㅠ
실무바이블3하고 뇌를자극하는 페도라로 하는데 이 책은 기초가 너무 부족하게 나온듯하내요.

CentOS 5.3설치하고 공부중입니다.

# touch a A Aa Ab b B Bb Bc c C Cd

# ls
a A Aa Ab b B Bb Bc c C Cd

# ls [a-z]
a A b B c C ==> 소문자 한글자로 된 문자를 검색했는데 왜 대문자가 같이 출력이 되는지요?

# ls [a-z]? ==> 이것도 위와 동일한 문제..
Aa Ab Bb Bc Cd

# ls [A-Z]? ==> 대문자로 시작되는 파일을 검색할때는 제대로 되는군요.
Aa Ab Bb Bc Cd

# ls [A-Z] ==> 대문자 한글자로 된 파일을 검색했는데 결과는 대문자 소문자가 다 출력되는군요.
A b B c C

# ls [A-Z^a-z] ==> 이것은 대문자, ^, 소문자 로 된 한글자출력 원하던 결과값이 나왔습니다.
a A b B c C

# ls [^a-zA-Z] ==> a-z, A-Z로 시작되는 파일은 제외하라고 명령을 내려서 파일이 없다고 나왔습니다.
ls: [^a-z]?: No such file or directory

# ls [^a-z]? ==> a-z로 시작되는 2글자로 된 파일을 검색했는데 Aa등과 같은 파일이 나와야 정상이 아닐까요?
ls: [^a-z]?: No such file or directory

도대체 위와 같은 결과가 나오는 이유가 뭘가요?
분명 [ ]는 [ ]안에 만족하는 한 글자만 출력되어야 하는것 아닌가요?

특수문자와 대체기호들 이런 것이 너무 어렵내요. 단순히 IBM사이트나 POSIX에 대한글을 구글링해서 보고서 따라해봤는데
결과값이 틀리게 나오는경우가 많내요.

제가 특수문자에 대해서 이해를 잘못하고 있는걸까요? ㅠㅠ

bigblues의 이미지

추가질문요.

.(dot)와 공백(space)도 특수문자로 생각하면 되나요?

Prentice의 이미지

bash에서는 [a-z]처럼 범위를 지정할 경우, LC_COLLATE 환경 변수의 내용에 따라 대소문자가 함께 걸릴 수도 있습니다.

[A-Z]?로 범위를 지정하셨을 때 대문자로 시작하는 파일만 걸린 이유는, 대문자 범위 지정이 성공했기 때문이 아니라, 두글자짜리 파일들이 모두 대문자로 시작했기 때문입니다. 소문자로 시작하는 두글자짜리 파일이 있었다면 그것도 걸렸을 것입니다.

Dot는 그냥 문자이고 공백은 주로 parameter를 구분하기 위해 사용됩니다.

File globbing은 regular expression과 다르므로 유의하셔야 합니다. 도움 되셨으면 좋겠네요. ^^;

allmue의 이미지

저도 globbing을 빼고 생각하며,,,, 잉? 왜 그러나.....생각했네요.....
touch 명렁을 한것이 있군요^^
___________________________________
항상 겸손하게, 배움의 자세로 임하자.

_______
항상 겸손하게,
배움의 자세로 임하자.

bigblues의 이미지

역시 이해를 잘 못하겠내요.
file globbing, regular expression에 대한 것을 찾아서 공부해봐야겠네요^^

워낙에 xp빼고는 만저본적도 없고 랭귀지에 대한것도 모르다보니^^ 막막하기만 하내요

Prentice님 답변 참고해서 공부해보겠습니다. 감사합니다^^

bigblues의 이미지

공부할 방향을 제시해 주셔서 감사합니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.