awk命令:三剑客之二
基础应用:
【awk '{print}' 文件名】:在终端预览这个文件的全部内容
【awk '{print $0}' 文件名】:$0表示第0列,也就是全部内容
【awk '{print $2}' 文件名】:预览该文件的第二列内容
【awk '{print $1,$3,$5}' 文件名】:预览指定的某几列内容
【awk '{print NF,$NF}' 文件名】:NF表示总列数,$NF就代表最后一列
【awk '{print NF,$(NF-1)}' 文件名】:$(NF-1)则代表倒数第二列
小结:awk是用空格和制表符作为列的划分的
按行筛选:
【awk 'NR==2{print $1}' 文件名】:预览第二行的第一列内容
【awk 'NR!=2{print}' 文件名】:预览除了第二行的其它全部内容
【awk 'NR==1,NR==5{print}' 文件名】:预览第一行到第五行的全部内容
【awk 'NR==1;NR==5{print $1}' 文件名】:预览第一行的全部和第五行的第一列内容
【awk 'NR<4{print}' 文件名】:预览前三行的全部内容
【awk '{print NR,$0}' 文件名】:预览文件的全部内容,并且每行加上序号
添加“开始”和“结束”任务:
【awk 'BEGIN{print "==开始=="}{print}END{print "==结束=="}' 文件名】
利用正则表达式搜索:
【awk '/女/{print}' emp.data】:搜索包含“女”的数据行
【awk '/经理$/{print}' emp.data】:搜索以“经理”结尾的数据行
【awk '/^[pP]/{print}' emp.data】:搜索以小写p或大写P开头的数据行
【awk '/^[a-z]/{print}' emp.data】:搜索以小写字母开头的数据行
【awk '/^[A-Z]/{print}' emp.data】:搜索以大写字母开头的数据行
【awk '/^[a-zA-Z]/{print}' emp.data】:搜索以字母开头的数据行
【awk '/^[0-9]/{print}' emp.data】:搜索以数字开头的数据行
【awk '/Apple/{if($2=="男")print $1,$4}' emp.data】:预览名字叫Apple,且性别为男的信息
添加选项:
【awk -F'❤' -v OFS='😍' -f order.awk 文件名】:
-F表示源文件内容不是用空格分隔的,是用❤分割的
-v OFS 表示预览的时候要用😍分割
-f order.awk 表示预览命令写在了order.awk文件中,直接读取该文件即可
【{print $1,$3,$2}】:这是order.awk里面的内容,不用加引号
---------------------------------------------------------------
sed命令:功能最多的剑客
一:预览打印功能:p命令
【sed -n '$p' 文件名】:预览最后一行内容
【sed '$p' 文件名】:预览文件全部内容,再打印一次最后一行
【sed -n '7p' 文件名】:预览第七行内容
【sed -n '2,3p' 文件名】:预览第二行到第三行内容
【sed -n '/搜索内容/p' 文件名】:用内容或正则搜索
二:删除命令:d命令【内存中删除】
【sed '$d' 文件名】:删除最后一行
【sed '3d' 文件名】:删除第三行
【sed '2,4d' 文件名】:删除第二行到第四行
【sed '/搜索内容/d' 文件名】:根据搜索内容删除
【sed '/^$/d' 文件名】:删除空白行
三:替换命令:s命令【内存中替换】
【sed '3s/apple/APPLE/' 文件名】:将第三行的第一个apple替换成APPLE
【sed 's/xiaomi/huawei/g' 文件名】:将每行出现的所有xiaomi都换成huawei
【sed '2,4s/huawei/apple/' 文件名】:将第二行到第四行首次出现的华为换成apple
【sed -n 's/apple/mi/gp' 文件名】:将每行的每个apple都换成mi,并预览换掉之后的数据
四:插入命令:a和i【内存中替换】append(追加),insert(插入)
【sed 'i\apple' 文件名】:在每行内容的上面插入apple
【sed '3i\apple' 文件名】:在第三行内容的上面插入apple
【sed 'a\banana' 文件名】:在每行的下面插入 banana
【sed '9a\banana' 文件名】:在第九行的下面插入banana
五:-e选项:一条命令执行多个操作
【sed -e '1,8d' -e 'a\___' -e 's/女/母/g' emp.data】:删除前8行,每行下面插入____,将女换成母
六:-i选项:让添加,删除,修改全部作用于源文件(慎重)
【sed -i '/^$/d' 文件名】: 删除了空白行
七:-f选项:将命令保存到文件中,下次直接读取即可
【sed -f order.sed 文件名】:将原本在单引号里的命令写在order.sed文件中,order.sed文件里不要加引号
关于awk命令使用
最新推荐文章于 2024-08-30 12:42:13 发布