Skip to main content

三剑客

David LiuAbout 1 min

三剑客

The Three Musketeers

Linux 三剑客:grep、sed、awk

grep

Global Regular Expression Print

  • -o选项表示只输出匹配到的内容,而不是整行;
  • -E选项表示使用扩展的正则表达式;
  • \b表示单词边界,用于确保匹配的是完整的IP地址;
  • [0-9]{1,3}表示匹配1到3位数字;
  • .表示匹配点号
grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" logfile

REGULAR EXPRESSIONS 正则表达式

括号表达式

括号表达式:[], ()

字符类

POSIX 字符类

  • [:alnum:]:匹配任意字母和数字字符。
  • [:alpha:]:匹配任意字母字符。
  • [:blank:]:匹配空格和制表符(Tab)字符。
  • [:cntrl:]:匹配控制字符。
  • [:digit:]:匹配任意数字字符。
  • [:graph:]:匹配可打印字符,不包括空格。
  • [:lower:]:匹配任意小写字母字符。
  • [:print:]:匹配可打印字符,包括空格。
  • [:punct:]:匹配标点符号和其他特殊字符。
  • [:space:]:匹配空白字符,包括空格、制表符、换行符等。
  • [:upper:]:匹配任意大写字母字符。
  • [:xdigit:]:匹配十六进制数字字符。

Repetition

符号说明
?前面的项是可选的,最多匹配一次。
*前面的项将被匹配零次或多次。
+前面的项将被匹配一次或多次。
{n}前面的项恰好匹配 n 次。
{n,}前面的项匹配 n 次或更多次。
{,m}前面的项最多匹配 m 次。这是 GNU 扩展。
{n,m}前面的项至少匹配 n 次,但不超过 m 次。

sed

Stream Editor

  • s: 替换
  • d: 删除
  • i: 插入

awk

awk 是三位创始人名字的简称

pattern