[완료]grep 정규식에 대한 질문입니다.

namsu의 이미지

안녕하세요 KLDP 회원님분들~!
grep 정규식을 이용해서 파일명 앞이 A-Z까지 출력하고자 하는데요

ls | grep ^[A-Z]

이렇게 하면 대문자로 시작하는 파일만 출력되어야 하는게 아닌가요?
# ls | grep ^[A-Z]
A
Aa
AAAA
AAAAE
Ab
B
Bb
Bbbb
Bc
c <<
install.log <<
install.log.syslog << 요놈들이 출력되구요

# ls | grep ^[A-Z]. //첫시작이 A-Z이고 임의의 한문자가 대문자로 시작되는 정규식인가요?
A
Aa
AAAA
AAAAE
Ab
B
Bb
Bbbb
Bc
install.log <<
install.log.syslog << 요놈들만 출력되구요

밑에 두놈은 어떻게 없어지지 않네요..
검색중에 LC_COLLATE < 요 환경변수의 문제일수도 있다는데 언어설정에 따라 출력값이 달라질수 있다는 소리인가요?

breadncup의 이미지

ls | grep -G '^[A-Z]'

만으로도 충분히 앞의 대문자로 되어 있는 것만 출력하게 됩니다.

insta....로 되어 있는 파일은 출력할 수 없을텐데요...

namsu의 이미지

LANG=C의 기본로케일에서는 잘되는군요..
정말 고맙습니다 ^^

헬로우~

octaphial의 이미지

조금 연구해 보니 역시 언어 환경변수가 문제가 되네요.

manpage:
For example, in the default C locale, [a-d] is equivalent to [abcd]. Many locales sort characters in dictionary order, and in these locales [a-d] is typically not equivalent to [abcd]; it might be equivalent to [aBbCcDd], for example.

이 설명에 따라 LANG=C로 해 보고 제 기본 언어 설정인 LANG=fr_FR.UTF-8로 해 보니 전자는 [A-Z]를 대문자로, 후자는 대소문자 모두로 인식합니다. 결국 [[:upper:]]로 해 보니 두 로케일 모두에서 잘 되구요.

breadncup의 이미지

grep man 페이지에 정말로 그렇게 설명이 되어 있네요.

저는 LANG=en_EN.UTF-8 인데, 그런 문제가 없었는데, 혹시나 해서 LANG을 ft_FR.UTF-8 으로 해보았는데, 저는 결과가 정확하게 [A-Z]가 동작하네요.

어쨌든 그래도 몰랐던 사실을 하나 알게 되네요. 감사합니다.

namsu의 이미지

LANG="en-US.UTF-8"인데 잘 되셨어요? fedora12쓰고 있는데 원하는값이 안나오는데.. 시스템마다 다 틀린가보군요..
더 찾아보니까 locale LC_COLLATE 환경변수의 정렬에 관한 문제인듯 싶은데 맞나 모르겠네요..

o LC_COLLATE : 스트링(string)의 정렬 순서(sort order 또는 collation)를 위한
로케일 설정을 위해 사용된다. 이것은 예를 들어 strcoll(), wcscoll(), strxfrm()
등의 함수에 영향을 줄 수 있다.

덕분에 새로운걸 알게되어 기뻐요.. 정말 고맙습니다^^

헬로우~

댓글 달기

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