Linux 메타 문자 란 무엇이며 어떻게 사용합니까?

Wikipedia에 따르면 메타 문자는 캐럿 (^), 달러 기호 ($) 또는 별표 (*)와 같은 특별한 의미를 갖는 문자입니다.

Linux의 관점에서 볼 때 상당수의 메타 문자가 있으며 그 의미는 실행중인 명령이나 프로그램에 따라 다릅니다.

메타 문자로 전체 중지 (.)

겸손한 정류장은 cd , find 또는 sh와 같은 명령을 실행할 때 현재 위치를 기증하는 데 사용되지만 awk , grepsed 와 같은 응용 프로그램에서는 문자를 나타내는 데 사용됩니다.

예를 들어, 다음 명령은 현재 폴더와 그 아래에있는 모든 mp3 파일을 찾습니다.

찾아라. -name * .mp3

이 명령을 사용하여 작업 디렉토리 (pwd)를 표시하면 mp3 파일을 홈 폴더 내의 음악 폴더에 보관한다고 가정 할 때 결과가 반환됩니다.

이제이 명령을 살펴보십시오.

ps -ef | grep f..efox

ps 명령은 컴퓨터에서 실행중인 모든 프로세스를 나열합니다. grep 명령은 입력 행을 가져 와서 패턴을 검색합니다.

따라서 ps -ef 명령은 실행중인 프로세스의 목록을 가져 와서 grep에 제공하여 목록에서 f..efox가있는 행을 검색합니다. 어떤 문자라도 의미 할 수 있습니다.

당신이 파이어 폭스를 실행하면 당신은 일치를 얻을 것이다. 마찬가지로, fonefox 또는 freefox가 실행중인 프로그램이 있으면 반환됩니다.

메타 문자로 별표 (*)

별표는보다 보편적으로 잘 알려진 메타 문자이며 패턴을 검색 할 때 0 이상을 나타내는 데 사용됩니다.

예 :

찾아라. -name * .mp3

* .mp3은 .mp3로 끝나는 파일 이름에 대해 일치하는 항목을 반환합니다. 마찬가지로 다음과 같이 grep 명령과 함께 별표를 사용할 수 있습니다.

ps -ef | grep F * efox

이것은 별표가 0 이상을 의미하므로 firefox, facefox 및 fonefox를 찾을 수있을뿐만 아니라 flutefox, ferretfox 및 심지어 fefox를 찾을 수 있기 때문에 약간 차이가 있습니다.

메타 문자로 캐럿 (^)

캐럿 (^)은 행 또는 문자열의 시작을 나타내는 데 사용됩니다. 어떻게 사용합니까?

ls 명령은 다음과 같이 폴더의 모든 파일을 나열하는 데 사용됩니다.

ls

"gnome"과 같은 특정 문자열로 시작하는 폴더의 모든 파일을 알고 싶으면 캐럿을 사용하여 해당 문자열을 지정할 수 있습니다.

예 :

ls | grep ^ 그놈

gnome으로 시작하는 파일 만 나열합니다. 파일 이름에 gnome이있는 파일을 원하면 다시 별표로 되돌아갑니다.

위의 예에서 ls는 파일 이름 목록을 반환하고 패턴 일치에 사용되는 grep에 해당 목록을 전달합니다. grep은 캐럿 기호가 문자 뒤에 오는 문자로 시작하는 것을 찾는다는 것을 알고 있습니다.이 경우에는 그놈입니다.

메타 문자로 달러 기호 ($)

달러 기호는 Linux에서 메타 문자로 여러 의미를 가질 수 있습니다.

패턴을 맞추기 위해 사용되는 경우 캐럿의 반대를 의미하며 특정 문자열로 끝나는 패턴을 나타냅니다.

예 :

ls | grep png $

png로 끝나는 모든 파일을 나열합니다.

달러 기호는 bash 쉘 내의 환경 변수에 액세스하는데도 사용됩니다.

예 :

수출 개 = 몰리
에코 $ 개

line export dog = molly는 dog라는 환경 변수를 만들고 그 값을 molly로 설정합니다. 환경 변수에 액세스하려면 $ 기호가 사용됩니다. $ 기호를 사용하면 echo $ dog 문은 molly를 표시하지만 echo 문을 사용하지 않으면 dog라는 단어가 표시됩니다.

메타 문자 이스케이프

때로는 메타 문자가 특별한 의미를 가지기를 원하지 않을 수도 있습니다. f.refox라는 파일과 firefox라는 파일이 있다면 어떨까요?

이제 다음 명령을 살펴보십시오.

ls | grep f.refox

당신은 어떻게 생각하십니까? 둘 다 패턴과 일치하기 때문에 f.refox와 firefox가 반환됩니다.

f.refox 만 반환하려면 다음과 같이 전체 중지를 실제로 종료해야합니다.

ls | grep f \\. refox

일반적인 메타 문자와 그 의미

Linux Metacharacters 목록
캐릭터 의미
. 모든 문자
* 0 개 이상의 문자
^ 패턴 (예 : ^ gnome)으로 시작하는 줄 또는 문자열을 일치시킵니다.
$ 패턴으로 끝나는 라인이나 문자열을 일치시킵니다 (예 : gnome $).
\ 다음의 문자를 이스케이프하여 특별한 의미를 제거합니다.
[] 목록 또는 범위 중 하나와 일치하십시오 (예 : [ "abc", "def"] 또는 [1..9]
+ 하나 이상의 선행 (즉, grep a +)과 일치
? 0 또는 1 앞의 일치