linux文本处理

## grep

    从文件内容查找匹配指定字符串的行:

grep “被查找的字符串” 文件名

    例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件

grep “thermcontact” /.in

    从文件内容查找与正则表达式匹配的行:

grep –e “正则表达式” 文件名

    查找时不区分大小写:

grep –i “被查找的字符串” 文件名

    查找匹配的行数:

grep -c “被查找的字符串” 文件名

    从文件内容查找不匹配指定字符串的行:

grep –v “被查找的字符串” 文件名

## cat

    去重,重复的行只输出1个

cat test8.txt|sort|uniq

## sed

    每行的前面加一个 w

sed 's/^/w/g' file1.txt

    在每行前加',在每行尾加',     

sed -e 's/^/'/g' -e "s/$/',/g" file1.txt

    从最后一行倒序输出

sed '1!G;h;$!d' test1.txt

    查找匹配的行

sed -n '/workflowId/'p failed_keyframe.txt

    删除匹配的行

sed -e '/recording/d' new_prod_all_packages.txt

    替换所有匹配字符串,将"a"替换为“b”:

sed 's/a/b/g' test6.txt

## awk

    打印文件的第一列

awk '{print $1}' test1.txt

    打印最后一列

awk -F/ '{print $NF}' test1.txt      -F/表示用/分隔,如果是空格则将-F/删除

    打印列数

awk -F/ '{print NF}' test1.txt      -F/表示用/分隔,如果是空格则将-F/删除

      提取第二列的值>=15 的行

awk '$2 >= 15' test1.txt

    打印行号

awk '{print NR}' test1.txt

    反选 模糊查询

awk '{if($0!~/duplicate/)print}'  file1.txt

    在file1中删除同时在file1和file2中的内容

awk 'NR==FNR{a[$0];next}!($0 in a)' file2 file1

    计算第1列的和

awk '{sum += $1};END {print sum}' file1.txt

## vim

    在每行行首添加相同的内容:

:%s/^/要添加的内容 

    在每行行尾添加相同的内容:

:%s/$/要添加的内容 

    利用正则表达式删除代码段每行的行号

:%s/^\s*[0-9]*\s*//gc 

其中,^表示行首,$表示行尾,\s表示空格,[0-9]表示0~9的数字,*表示0或多个,%s/^\s*[0-9]*\s*//gc的意思是将每行以0或多个空格开始中间包含0或多个数字并以0或多个空格结束的字符串替换为空

## 文件处理

    创建空文件,指定大小

mkfile -n 34m filename

认为有用的小伙伴们点个赞呀~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容