grep

위키百科, 우리 모두의 百科事典.

grep
原著者 켄 톰프슨 [1] [2]
發表日 1973年 11月 [1]

grep (그렙)은 유닉스 를 위해 만들어진 텍스트 檢索 機能을 가진 命令語이다. 그 이름은 유닉스 ed 의 命令語로 비슷한 機能을 遂行하는 g/re/p 에서 由來되었다. [3]

grep 은 嚴密히 말하면 頭文字어(머리글자로 된 말)은 아니지만 global / regular expression / print 에서 各各의 머리글字를 따 온 것이며 이것은 ed 텍스트 編輯機에서 쓰이는 連續的인 指示語이다. grep 命令語는 파일이나 標準 入力을 檢索하여 주어진 正規 表現式 과 맞는 줄을 찾아 프로그램의 標準 出力으로 出力한다.

使用 [ 編輯 ]

grep 의 一般的인 使用 例는 아래와 같다 :

grep
 apple
 fruitlist.txt

이 境遇, grep은 'fruitlist.txt'라는 파일에서 'apple'이라는 單語를 包含하는 모든 줄을 單語 警戒와 相關없이 찾아서 出力한다; 따라서 'pineapple'이나 'apple'을 包含하는 모든 줄도 出力된다. grep 命令은 case sensitive(大文字와 小文字의 使用에 따라 單語의 뜻이 달라지는 境遇가 있음) 하기 때문에 위와 같은 使用에서 출력된 結果에는 'apple'가 같이 들어 있지 않으면서 'Apple'가 들어있는 줄은 없을 것이다.

다른 大部分의 유닉스 命令語와 같이 grep은 위의 境遇나 다른 많은 行動을 修正하기 위해 옵션을 使用할 수 있다. 例를 들어 :

grep
 -i
 apple
 fruitlist.txt

위와 같은 命令은 大文字 使用 與否와 關係 없이 'apple'李 包含되어 있는 모든 줄을 出力해 줄 것이다. '-i' 옵션은 grep命令語로 하여금 大文字 使用에 對해 反應하지 않거나, 大文字 使用을 無視하도록 해 준다.

'apple' 이 獨立的인 한 單語로서 들어 있는 모든 줄을 出力하려면('pineapple'등이 들어 있는 줄은 출력되지 않도록):

grep
 -w
 apple
 fruitlist.txt

簡單하게 하기 위하여 위의 用例는 하나의 英語 單語를 使用하였다. 하지만 正規 表現式 을 使用하는 境遇에는 매우 複雜하며 解讀하기 어렵기로 惡名이 높다.

grep命令語에 對한 더 仔細한 事項들을 爲해서는 (使用時 옵션이나 regular expression capabilities/syntax等에 關해서) 補充 說明에 있는 特定 文書들을 參照해야 한다.

變形 [ 編輯 ]

現存하는 많은 運營 體制에서 grep 命令語는 수많은 補充 機能과 派生 機能을 가지고 있다. grep의 初期 變形語로는 egrep fgrep 이 있었다. 前者는 켄 톰프슨의 元來의 正規 表現式 具現 以後에 이루어진 擴張된 正規 表現式 文法 機能을 提供하였다. 後者는 雅號-코라式(Aho-Corasick) 알고리즘을 使用하여 固定된 文字列의 리스트를 檢索하는 機能을 가지고 있었다. 이와 같은 變形들은 最近의 grep 命令語 補完에 包含되어 大部分이 옵션 機能으로 바뀌었다. 이와 같은 統合 補完 體制 下에서는 grep은 使用되는 이름에 따라 서로 다른 機能을 遂行할 수도 있으나, fgrep, egrep, 그리고 grep은 모두 같은 프로그램으로 連結되는 命令語로 기능한다.

Tcgrep은 grep의 補完된 形態로 Perl言語를 使用한다.

'grep'이라는 單語를 包含하는 다른 命令들은 그들이 檢索 機能을 갖는다는 意味를 內包하고 있다. 例를 들어 pgrep 機能은 주어진 regular expression에 一致하는 이름을 가진 프로세스들의 目錄을 보여 준다.

에서 grep은 目錄에 存在하는 要素를 檢索하는 內臟 機能의 이름이다. [4] 技術的 프로그래밍 言語에서 이와 같은 機能은 普通 'filter'라고 이름붙여져 있다.

pcregrep 命令은 펄 正規 表現式 文法을 使用하는 grep의 具現體이다. [5] GNU 버전의 grep에서도 -P 플래그를 使用하여 비슷한 機能을 呼出할 수 있다. [6]

도스 , OS/2 , 그리고 마이크로소프트 윈도우 基盤의 시스템은 簡單한 檢索 機能을 가진 命令語를 提供한다. 윈도에는 "findstr"이라는 命令語가 있는데 이 命令語는 "grep"과 機能的 側面에서 매우 類似하며 或은 윈도우에서도 時그윈 을 利用하여 grep의 變形된 버전을 利用할 수 있다.

日常 繪畫에서의 使用 [ 編輯 ]

"grep"이라는 用語는 찾다 라는 意味를 가진 動詞로 活用될 수 있다; 一般的으로는 사람들이 grep 命令語가 遂行하는 機能에서 떠올릴 수 있듯 주어진 파일들 內에서의 檢索을 稱한다. 直接 目的語는 검색당하는 파일들이 된다: " Kibo grepped his Usenet spool for his name." google 이라는 動詞와 比較될 수 있다. 때때로 visual grep 이라는 구는 무언가를 찾기 위해 텍스트를 훑어본다는 意味로 使用된다.

2003年 12月, 옥스포드 英語辭典 온라인 은 "grep"이라는 單語를 名詞와 動詞로써 追加했다.

一般的으로는 "You can't grep dead trees"라는 表現이 使用되기도 하는데, 이것은 電算化된 文書가 종이로 출력된 文書(죽은 나무로 만들어진 종이)보다 더욱 便利하다는 뜻이며, 이는 컴퓨터로는 grep과 같은 命令語를 使用하여 檢索을 할 수 있기 때문이다.

같이 보기 [ 編輯 ]

參考 文獻 [ 編輯 ]

  • Alain Magloire (2000年 8月). 《Grep: Searching for a Pattern》. Iuniverse Inc. ISBN   0-595-10039-2 .  
  • Hume, Andrew A tale of two greps [ 깨진 링크 ( 過去 內容 찾기 )] , Software?Practice and Experience 18, ( 11 ), 1063?1072 ( 1988).
  • Hume, Andrew Grep wars: The strategic search initiative. In Peter Collinson, editor, Proceedings of the EUUG Spring 88 Conference , pages 237?245, Buntingford, UK, 1988. European UNIX User Group.

各州 [ 編輯 ]

  1. Kernighan, Brian (1984). 《The Unix Programming Environment》 . Prentice Hall. 102 쪽. ISBN   0-13-937681-X .  
  2. “grep was a private command of mine for quite a while before i made it public.” -Ken Thompson , By Benjamin Rualthanzauva, Published on Feb 5, 2014, Medium
  3. Raymond, Eric . “grep” . 《Jargon File》 . 2006年 6月 29日에 確認함 .  
  4. “grep” . 《www.perldoc.perl.org》 . 2015年 12月 12日에 確認함 .  
  5. “pcregrep man page” . 《www.pcre.org》. University of Cambridge . 2015年 12月 12日에 確認함 .  
  6. “grep(1)” . 《www.linux.die.net》 . 2015年 12月 12日에 確認함 .  

外部 링크 [ 編輯 ]