• linux 常用处理命令


    zcat,bzcat 

    查看压缩文件中的内容并检索关键字

    • zcat txt.tar.gz | grep -a 'html'
    • bzcat txt.tar.bz2 | grep -a 'html'

    grep -a   --text   #不要忽略二进制的数据。   

    sed -i  直接替换文件内容

    sed -i 's#wwwcdn.xxx.net/k/??kissy#kissy.xxx/k/??kissy#' ./beauty_awards.html

    加上xargs

    find . -name 'onepage.html' | xargs sed -i 's#wwwcdn.xxx.net/k/??kissy#kissy.xxx.net/k/??kissy#'

    sed -i 匹配直接删除行

    sed -i '/002/90/71/95_avatar_middle.jpg/d' /tmp/avatar_upload.txt

     使用grep比较两个文件,a,b 仅仅出现在b文件中的行

    grep -v -f a b    (有时会出现正则匹配错误)

    awk 比较两个文件, 只在a中出现的行

    awk '{print NR, $0}' /tmp/a.txt /tmp/b.txt | sort -k2 | uniq -u -f 1 | sort -k1 | awk '$1<3 {printf $2" "}'

    【$1<3】 中的3 是/tmp/a.txt  文件的行数+1

    awk就是文本的解释器和过滤器。awk把每一行看成是一个记录(record),每个记录使用分隔符(默认是空格)把每条记录分成若干域。awk内置参 数$0表示整行,$1、$2...分别表示各域,内置参数NR,表示记录的计数,awk '{print NR, $0}' file1 file2表示依次读取file1 file2,打印出每行,并且在前面添加行号。

     命令sort,就是对行进行排序,参数-k表示根据各行的第几个参数关键字开进行排序,这里的-k2表示根据第二个关键字开始进行排序。

    命令uniq,进行报告或者忽略重复的行,参数-u,表示只是打印出唯一的行(unique lines),-f表示忽略的每行的前n个域的比较。

    awk 关系运算符

    cat user.txt | grep -v ID | awk '$4 > 18 {printf $2 " "}'

    用shell切分文件--split

    https://blog.csdn.net/qmhball/article/details/7917033

    split [-bl] file [prefix]

    参数说明:
    -b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位b,k,m。
    -l, --lines=NUMBER:对file进行切分,每个文件有NUMBER行。
    prefix:分割后产生的文件名前缀。

    split -l 10 bing.log common_upload_image_

    【shell】【awk】常用命令 使用awk 按行打乱(shuffle)数据文件

    原理:

    使用随机数功能,与原内容作拼接,排序,然后输出,最终去掉随机数,得到打乱后的内容

    cat  1.txt  | awk  -F"3" 'BEGIN{srand();}{value=int(rand()*10000000); print value"3"$0 }' | sort | awk -F"3" '{print $2}'

    Linux查看文件指定行数内容

    1、tail date.log               输出文件末尾的内容,默认10行

         tail -20  date.log        输出最后20行的内容

         tail -n -20  date.log    输出倒数第20行到文件末尾的内容

         tail -n +20  date.log   输出第20行到文件末尾的内容

         tail -f date.log            实时监控文件内容增加,默认10行。

    2、head date.log           输出文件开头的内容,默认10行

         head -15  date.log     输出开头15行的内容

         head -n +15 date.log 输出开头到第15行的内容

         head -n -15 date.log  输出开头到倒数第15行的内容

    3、sed -n "开始行,结束行p" 文件名    

          sed -n '70,75p' date.log             输出第70行到第75行的内容

          sed -n '6p;260,400p; ' 文件名    输出第6行 和 260到400行

          sed -n 5p 文件名                       输出第5行

    grep -E 选项可以用来扩展选项为正则表达式。 如果使用了grep 命令的选项-E,则应该使用 | 来分割多个pattern,以此实现OR操作。

    grep -E 'pattern1|pattern2' filename

    cat /tmp/a.txt | grep -E '3959565|3959557'

    cat /tmp/a.txt | grep  '3959565|3959557'

    Linux中怎么通过PID号找到对应的进程名及所在目录方法

    来源: https://www.jb51.net/article/142461.htm

    大致信息: ps -aux |grep -v grep|grep 28990

    得知PID之后可以直接进入/proc/28990

  • 相关阅读:
    JDK15视频会及新特性总节
    设计模式之访问者模式
    datax分析与思考(一)
    beanfactory中单例bean的初始化过程(一)
    IIS 404错误,错误代码:0x80070002
    WebApi
    多线程--程序员必修课
    委托(续2)
    委托(续)
    委托
  • 原文地址:https://www.cnblogs.com/bandbandme/p/4643362.html
Copyright © 2020-2023  润新知