zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    LeetCode 769. Max Chunks To Make Sorted
    LeetCode 845. Longest Mountain in Array
    LeetCode 1059. All Paths from Source Lead to Destination
    1129. Shortest Path with Alternating Colors
    LeetCode 785. Is Graph Bipartite?
    LeetCode 802. Find Eventual Safe States
    LeetCode 1043. Partition Array for Maximum Sum
    LeetCode 841. Keys and Rooms
    LeetCode 1061. Lexicographically Smallest Equivalent String
    LeetCode 1102. Path With Maximum Minimum Value
  • 原文地址:https://www.cnblogs.com/bandbandme/p/4643362.html
Copyright © 2011-2022 走看看