工作中常用的linux命令整理-文本和文件处理

admin2024-07-01  7

VI

  • 显示行号“: set number”
  • 统计查找字符串“ORA”个数:“:%s/ORA//gn”
  • 复制:yy
  • 粘贴:p
  • 删除: dd
  • 删除第一行到第十行: :1,10d
  • 删除第5行至最后一行: :5,$d
  • 跳转到指定行:“:n”
  • 跳转到最后一行:Shift+GS
  • 向下查找:/字符串
  • 向上查找:?字符串
  • 查找下一个:n

文件查找和文本查找

  • find . -name "Machine*"     # 文件查找
  • grep -rn "text to be searched"    #文件内容
  • cat file.txt | grep -C 5 "text to be searched": 显示上下5行

压缩&解压缩

gzip

  • 解压: gzip –d **.Z
  • 压缩:gzip -c 待压缩文件 > 结果文件, 压缩文本文件效果较好

        gzip -c removeIP0703_2.jtl > removeIP0703_2_gzip.tar

注意:一定要使用 -c 参数,否则压缩后会将源文件删除。为了避免误操作,建议压缩前先备份。

zip

解压:unzip *.zip

tar 

  • 压缩: tar zcvf ./结果文件.tgz ./待压缩文件

        例如:tar zcvf ./systemOut.log.tgz ./systemOut.* #将本文件夹下所有的systemOut的log全部打包在一起。

        比如要把/export/111   压缩到/tmp下  并把压缩包命名为111.tar

        tar -cvf /tmp/111.tar  /export/111   ##压缩

  • 解压:tar -xvf /tmp/111.tar             ##解压缩

删除重复行 uniq

sort a.txt | uniq > b.txt #删除文件中的重复行

sort -t ',' -k 3 -u 08L2.log >> 08U.log # 分隔符“,”按第三列进行排序,并删掉重复行

awk

0: {id: "20067239", teamId: "10094449", name: "刘洋", photo: "profile_20067239", gender: null,

1: {id: "20070412", teamId: "10094449", name: "范恩来", photo: "", gender: null, nation: null,

执行:awk -F ':' '{print $3}' xf人员ID.txt >> ID.txt #指定分隔符为:,获取第三组数据,结果为:

"20067239", teamIdr

"20070412", teamId

sed

sed '/L7/d' feed.2016-12-07.log >> 07.log #删除文件中含有“L7”的行并输出到07.log中

sed -n '/L2/!p' 07.log >> 07_notL2.log #列出文件中不含有“L2”的行

sed -n '/L2/p' feed.2016-12-08.log >> 08L2.log #列出文件中含有“L2”的行

sed 's/10\.111\.11\.111-//g' 中文csv2.jtl | sed 's/10\.111\.11\.110-//g'>removeIP.jtl #删除字符串“10.111.11.111-” 和“10.111.111.110-”(用空字符串替换目标字符串)

1) s表示替换;

2) //中间的内容表示要被替换的字符串,

3) “.”是正则表达式中的特殊字符,需要使用“\”转义;

4) 如果有要替换的字符,写在第二个/后面,比如’s/stringToBeReplaced/newString/g’

5) g表示行内全局查找;

6) 蓝色字体分别是待处理文件和最后生成的结果文件)

文本比较

diff file1 file2  #逐行比较文件内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!