grep \ awk \ sed \ echo

1. grep: 在文本中搜索某个关键词所在语句

cat test.txt | grep error

2. echo:  Shell脚本8种字符串截取方法总结

var=http://www.aaa.com/123.htm

#1:#*// 表示 删除第一个(从左往右)//左边的字符,保留右边的字符
$ echo ${var#*//}
www.aaa.com/123.htm
#: ##*/ 表示删除最后一个/左边的字符,保留右边的字符
$ echo ${var##*/}
123.htm
#2: %/* 表示删除第一个(从右往左)/右边的字符,保留左边的字符
$ echo ${var%/*}
http://www.aaa.com
#: %%/* 表示删除最后一个(从右往左)/右边的字符,保留左边的字符
$ echo ${var%%/*}
http:
#3 :1:7  表示取左边起第1位,长度为7的字符串(0表示开始)
$ echo ${var:1:7}
ttp://w
# :7表示取左边起第7位,长度至结束的字符串(0表示开始)
$ echo ${var:7}
www.aaa.com/123.htm
#:0-7:3表示从右边起,从第7位取,长度为3的字符串
$ echo ${var:0-7:3}
123
# :0-7 表示从右边起,从第7位起,长度至结束的字符串
$ echo ${var:0-7}
123.htm

3. 替换: sed -i "s/ / /g" test.txt  

#去掉`
sed -i "s/\`//g" test.txt

#去掉Table\tCreate Table
sed -i "s/Table\tCreate Table//g" test.txt

  

4. awk:截取

#取文件列表的后面5个的文件名
$ ls -l| tail -n 5
-rw-r--r-- 1 huimei develop   1208 4月  10 16:36 readme.txt
-rw-r--r-- 1 huimei develop    871 3月  31 14:20 rp_table_list.txt
-rw-r--r-- 1 huimei develop      1 3月  27 15:42 sp_sqls.txt
-rw-r--r-- 1 huimei develop   1144 3月  24 15:23 tablelist.txt
drwxr-xr-x 2 huimei develop   4096 3月  26 19:11 xizhibiao_0115

$ ls -l| tail -n 5 |awk ‘{print $9}‘
readme.txt
rp_table_list.txt
sp_sqls.txt
tablelist.txt
xizhibiao_0115

#输出第3列和第9列的内容,以tab符分隔
$ ls -l|tail -n 5|awk ‘{print $3 "\t" $9}‘
huimei readme.txt
huimei rp_table_list.txt
huimei sp_sqls.txt
huimei tablelist.txt
huimei xizhibiao_0115

#对文件check_result_values.txt进行,分隔,输出第1和2列,以:和tab符分隔
$ awk -F "," ‘{print $1,":\t",$2}‘ check_result_values.txt|head -3
1 :	 mt_medical_record_first_operation
1 :	 pt_patient_consultation_advice
1 :	 pt_patient_vitalsign

  

  

原文地址:https://www.cnblogs.com/skyEva/p/12698691.html

时间: 2024-11-05 23:21:34

grep \ awk \ sed \ echo的相关文章

cut\grep\awk\sed命令详解

cut\grep\awk\sed命令详解 1.cut命令详解及实例 (1)作用:提取文件中指定的列 语法格式:cut  选项  文件名   (2)选项作用:      -d 分隔符     按照指定的分割符进行分割      -f 列号       指定提取第几列      -c 字符范围  不依赖分割符来分割,而是通过字符范围进行字段提取      -b 字节数     以字节为单位进行分割.    (3)cut实际应用案例. 例1:cut的-d和-f选项的使用,列出/etc/passwd里面

grep awk sed 练习题

1. 如何把 /etc/passwd 中用户uid 大于500 的行给打印出来?awk  -F ':' '$3 > 500' passwd 2. awk中 NR,NF两个变量表示什么含义?awk -F ':' '{print $NR}' /etc/passwd  会打印出什么结果出来?NR是行数 NF是段数 会打印第一行的第1段,第二行的第2段,第7行的第7段,以及空行 3. 用grep把1.txt文档中包含'abc'或者'123'的行过滤出来,并在过滤出来的行前面加上行号. egrep -n

通过grep,awk,sed的简单应用获取网卡信息。

本文主要通过shell命令来实现获取网卡信息.通过cmd_shell函数可以将运行命令后的输出返回. int cmd_shell(char *shellcmd, char *outbuffer, int size) { FILE *stream; char buffer[size]; memset(buffer, 0, sizeof(buffer)); stream = popen(shellcmd, "r"); if (stream != NULL) { fread(buffer,

Linux四剑客find/grep/awk/sed

find ./ -name "*txt" -maxdepth 1 -type f -mtime -2 -exec mv {} ./bbb.txt \; 这条命令表示找当前目录(-maxdepth 1,没这条是递归找当前目录的所有子目录)且是文件的(-type f)且两天以内创建的(-mtime -2,如果是+2表示两天前创建的,还可以-mmin以分钟为单位),且名字是匹配*txt(linux通配符和regex不同,linux自带的特殊字符 必须在""内)然后将这些文

Linux文本三剑客超详细教程---grep、sed、awk

awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理. 1.grep 1.1 什么是grep和egrep Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红).grep全称是Global

Shell正则表达式之grep、sed、awk实操笔记

最近一直在研究shell脚本这块,刚好闲下来整了下自己手头上比较好的资料中的一些范例,以下是我整理的鸟哥私房菜里面正则表达式里面比较基础的一些语法详解,适合新手查阅. 首先先复制一段范例: 复制代码 代码如下: # vi regular_express.txt ------------------------------- "Open Source" is a good mechanism to develop programs. apple is my favorite food.

正则表达式解析 & awk/sed/grep实用实例总结文档

##正则表达式特殊字符解析 "^" 匹配行首 "$" 匹配行尾 "^$" 匹配整行为空,空行 grep -v "^$"    打印非空的行 "."  代表且只能代表任意一个字符 "*" 重复0个或多个前面一个的字符.例如"o*",重复一个或多个o ".*"  匹配所有字符.延伸: "^.*" -->以任意多个字符开头.&q

第14章 grep、sed、awk 正则表达式

1. 如何把 /etc/passwd 中用户uid 大于500 的行给打印出来?   awk -F ':' '$3>500' /etc/passwd2. awk中 NR,NF两个变量表示什么含义?awk -F ':' '{print $NR}' /etc/passwd  会打印出什么结果出来?    NR 表示行 : NF表示列 awk -F ':' '{print $NR}' /etc/passwd   会依次打印对应的行数的段,第一行打印第一段,第二行打印第二段... 到了最后就打印空行了 

正则、grep、sed、awk

每次用到正则都要蛋疼一下,索性总结一下在这里. 正则 正则表达式主要分为基础正则和扩展正则.注意,正则和一般命令行输入的命令的通配符不同.正则只使用于支持这种表示法的工具,如:vi,grep,sed.awk.而ls等命令不支持这种表示,只能使用bash自身的通配符. 基础部分: [abc] 匹配括号中的一个 [^abc] 匹配非括号中的一个(取反) ^word 以word开头 word$ 以word结尾 [n1-n2] 从n1到n2之间的所有连续字符. 注意:这个连续与否,与ASCII编码有关,