egrep.awk
来自「gawk: linux下资料处理工具」· AWK 代码 · 共 103 行
AWK
103 行
# egrep.awk --- simulate egrep in awk## Arnold Robbins, arnold@skeeve.com, Public Domain# May 1993# Options:# -c count of lines# -s silent - use exit value# -v invert test, success if no match# -i ignore case# -l print filenames only# -e argument is pattern## Requires getopt and file transition library functionsBEGIN { while ((c = getopt(ARGC, ARGV, "ce:svil")) != -1) { if (c == "c") count_only++ else if (c == "s") no_print++ else if (c == "v") invert++ else if (c == "i") IGNORECASE = 1 else if (c == "l") filenames_only++ else if (c == "e") pattern = Optarg else usage() } if (pattern == "") pattern = ARGV[Optind++] for (i = 1; i < Optind; i++) ARGV[i] = "" if (Optind >= ARGC) { ARGV[1] = "-" ARGC = 2 } else if (ARGC - Optind > 1) do_filenames++# if (IGNORECASE)# pattern = tolower(pattern)}#{# if (IGNORECASE)# $0 = tolower($0)#}function beginfile(junk){ fcount = 0}function endfile(file){ if (! no_print && count_only) if (do_filenames) print file ":" fcount else print fcount total += fcount}{ matches = ($0 ~ pattern) if (invert) matches = ! matches fcount += matches # 1 or 0 if (! matches) next if (! count_only) { if (no_print) nextfile if (filenames_only) { print FILENAME nextfile } if (do_filenames) print FILENAME ":" $0 else print }}END \{ if (total == 0) exit 1 exit 0}function usage( e){ e = "Usage: egrep [-csvil] [-e pat] [files ...]" e = e "\n\tegrep [-csvil] pat [files ...]" print e > "/dev/stderr" exit 1}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?