Linux Shell脚本——文件处理

 

通过man或--help查看相应的参数

grep:在文件中搜索文本
grep pattern filename
echo -e "this is a word\nnext line" | grep word 从stdin中搜索
grep "pattern" file1 file2 file3  搜索多个文件
grep -E "[a-z]+" file  使用正则表达式搜索时,使用E参数,或者使用egrep搜索
grep -o -E "[a-z]+\." filename  用o指定指数出匹配的部分
grep -v "pattern" filename 打印出匹配到的行之外的所有行
grep -c "pattern" filename 文件中匹配到的字符串的行数
grep "pattern" . -R -n  递归搜索目录中的文本-R递归,-n输出行号
grep -i "pattern" 忽略大小写
grep -e "pattern1" -e "pattern2"  匹配多个表达式
grep -f patterfile filename  patterfile定义搜索的字符串
grep "pattern" . -R --include *.txt 只搜索txt文件
grep "pattern" . -R --exclude *.txt 搜索出txt之外的文件


cut按列切分文件
cut -f 1,3 filename 切分文件的第1,3列
cut -f 2 --component filename 切分除第2列之外的列
cut -f 2 -d " " filename 切分第2列,默认通过空格分隔列


sed流编辑器,多用来进行文本替换
sed 's/pattern/replace_string/' filename      替换文本
sed -i 's/pattern/replace_string/' filename   将替换应用于原文件
sed 's/pattern/replace_string/' file1 > file2 替换后的内容从定向到file2
sed 's/pattern/replace_string/g' filename     替换文件中所有的pattern
sed 's/pattern/replace_string/2g' filename    替换第二个pattern开始后的所有字符串
sed 's:pattern:replace_string:2g' filename    同样可以使用:替代/作为定界符
sed '/^$/d' filename   使用/pattern/d移除匹配的行  ^$可以匹配空白行
echo this is an example | sed 's/\w\+/[&]/g' 输出[this] [is] [an] [example] &标记匹配的字符串
echo this is an example | sed 's/\(this\) \(is\)/\2 \1/' 输出is this an example \n代表匹配到的第n个子串,\(pattern\)匹配字串
echo hello world | sed "s/$text/HELLO/" $text是一个变量,这个时候使用双引号代替单引号
sed 's/pat1/str1/' file | sed 's/pat2/str2/'   通过管道可以指定多个sed
sed 's/pat1/str1/;s/pat2/str2/' file  效果同上


awk用于数据流,可以同时对列和行进行操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值