精华内容
下载资源
问答
  • linux grep文件过滤与分割命令

    千次阅读 2019-08-31 13:30:11
    linux grep文件过滤与分割命令 文章目录linux grep文件过滤与分割命令1、grep命令选项grep命令常见用法grep递归搜索文件2、split命令选项实例3、look命令语法选项参数4、printf命令语法参数实例5、dump命令语法选项...

    linux grep文件过滤与分割命令

    1、grep命令

    文件过滤分割与合并

    grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

    选项

    -a 不要忽略二进制数据。
    -A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
    -b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
    -c 计算符合范本样式的列数。
    -C<显示列数>或-<显示列数>  除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
    -d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
    -e<范本样式> 指定字符串作为查找文件内容的范本样式。
    -E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
    -f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
    -F 将范本样式视为固定字符串的列表。
    -G 将范本样式视为普通的表示法来使用。
    -h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
    -H 在显示符合范本样式的那一列之前,标示该列的文件名称。
    -i 忽略字符大小写的差别。
    -l 列出文件内容符合指定的范本样式的文件名称。
    -L 列出文件内容不符合指定的范本样式的文件名称。
    -n 在显示符合范本样式的那一列之前,标示出该列的编号。
    -q 不显示任何信息。
    -R/-r 此参数的效果和指定“-d recurse”参数相同。
    -s 不显示错误信息。
    -v 反转查找。
    -w 只显示全字符合的列。
    -x 只显示全列符合的列。
    -y 此参数效果跟“-i”相同。
    -o 只输出文件中匹配到的部分。
    

    grep命令常见用法

    在文件中搜索一个单词,命令会返回一个包含**“match_pattern”**的文本行:

    grep match_pattern file_name
    grep "match_pattern" file_name
    

    在多个文件中查找:

    grep "match_pattern" file_1 file_2 file_3 ...
    

    输出除之外的所有行 -v 选项:

    grep -v "match_pattern" file_name
    

    标记匹配颜色 –color=auto 选项:

    grep "match_pattern" file_name --color=auto
    

    使用正则表达式 -E 选项:

    grep -E "[1-9]+"
    或
    egrep "[1-9]+"
    

    只输出文件中匹配到的部分 -o 选项:

    echo this is a test line. | grep -o -E "[a-z]+\."
    line.
    
    echo this is a test line. | egrep -o "[a-z]+\."
    line.
    

    统计文件或者文本中包含匹配字符串的行数 -c 选项:

    grep -c "text" file_name
    

    输出包含匹配字符串的行数 -n 选项:

    grep "text" -n file_name
    或
    cat file_name | grep "text" -n
    
    #多个文件
    grep "text" -n file_1 file_2
    

    打印样式匹配所位于的字符或字节偏移:

    echo gun is not unix | grep -b -o "not"
    7:not
    
    #一行中字符串的字符便宜是从该行的第一个字符开始计算,起始值为0。选项 -b -o 一般总是配合使用。
    

    搜索多个文件并查找匹配文本在哪些文件中:

    grep -l "text" file1 file2 file3...
    

    grep递归搜索文件

    在多级目录中对文本进行递归搜索:

    grep "text" . -r -n
    # .表示当前目录。
    

    忽略匹配样式中的字符大小写:

    echo "hello world" | grep -i "HELLO"
    hello
    

    选项 -e 制动多个匹配样式:

    echo this is a text line | grep -e "is" -e "line" -o
    is
    line
    
    #也可以使用-f选项来匹配多个样式,在样式文件中逐行写出需要匹配的字符。
    cat patfile
    aaa
    bbb
    
    echo aaa bbb ccc ddd eee | grep -f patfile -o
    

    在grep搜索结果中包括或者排除指定文件:

    #只在目录中所有的.php和.html文件中递归搜索字符"main()"
    grep "main()" . -r --include *.{php,html}
    
    #在搜索结果中排除所有README文件
    grep "main()" . -r --exclude "README"
    
    #在搜索结果中排除filelist文件列表里的文件
    grep "main()" . -r --exclude-from filelist
    

    使用0值字节后缀的grep与xargs

    #测试文件:
    echo "aaa" > file1
    echo "bbb" > file2
    echo "aaa" > file3
    
    grep "aaa" file* -lZ | xargs -0 rm
    
    #执行后会删除file1和file3,grep输出用-Z选项来指定以0值字节作为终结符文件名(\0),xargs -0 读取输入并用0值字节终结符分隔文件名,然后删除匹配文件,-Z通常和-l结合使用。
    

    grep静默输出:

    grep -q "test" filename
    
    #不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。
    

    打印出匹配文本之前或者之后的行:

    #显示匹配某个结果之后的3行,使用 -A 选项:
    seq 10 | grep "5" -A 3
    5
    6
    7
    8
    
    #显示匹配某个结果之前的3行,使用 -B 选项:
    seq 10 | grep "5" -B 3
    2
    3
    4
    5
    
    #显示匹配某个结果的前三行和后三行,使用 -C 选项:
    seq 10 | grep "5" -C 3
    2
    3
    4
    5
    6
    7
    8
    
    #如果匹配结果有多个,会用“--”作为各匹配结果之间的分隔符:
    echo -e "a\nb\nc\na\nb\nc" | grep a -A 1
    a
    b
    --
    a
    b
    

    2、split命令

    文件过滤分割与合并

    split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。

    选项

    -b:值为每一输出档案的大小,单位为 byte。
    -C:每一输出档中,单行的最大 byte 数。
    -d:使用数字作为后缀。
    -l:值为每一输出档的列数大小。
    

    实例

    生成一个大小为100KB的测试文件:

    [root@localhost split]# dd if=/dev/zero bs=100k count=1 of=date.file
    1+0 records in
    1+0 records out
    102400 bytes (102 kB) copied, 0.00043 seconds, 238 MB/s
    

    使用split命令将上面创建的date.file文件分割成大小为10KB的小文件:

    [root@localhost split]# split -b 10k date.file 
    [root@localhost split]# ls
    date.file  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj
    

    文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度:

    [root@localhost split]# split -b 10k date.file -d -a 3
    [root@localhost split]# ls
    date.file  x000  x001  x002  x003  x004  x005  x006  x007  x008  x009
    

    为分割后的文件指定文件名的前缀:

    [root@localhost split]# split -b 10k date.file -d -a 3 split_file
    [root@localhost split]# ls
    date.file  split_file000  split_file001  split_file002  split_file003  split_file004  split_file005  split_file006  split_file007  split_file008  split_file009
    

    使用-l选项根据文件的行数来分割文件,例如把文件分割成每个包含10行的小文件:

    split -l 10 date.file
    

    3、look命令

    文件过滤分割与合并

    look命令用于显示文件中以指定字符串开头的任意行。

    语法

    look(选项)(参数)
    

    选项

    -a:使用另一个字典文件web2,该文件也位于/usr/dict目录下;
    -d:只对比英文字母和数字,其余一概忽略不予比对;
    -f:忽略字符大小写差别;
    -t<字尾字符串>:设置字尾字符串。
    

    参数

    • 字符串:指定要查找的字符串;
    • 文件:指定要查找的目标文件。

    4、printf命令

    文件过滤分割与合并

    printf命令格式化并输出结果到标准输出。

    语法

    printf(选项)(参数)
    --help:在线帮助;
    --version:显示版本信息。
    

    参数

    • 输出格式:指定数据输出时的格式;
    • 输出字符串:指定要输出的数据。

    格式替代符

    • %b 相对应的参数被视为含有要被处理的转义序列之字符串。
    • %c ASCII字符。显示相对应参数的第一个字符
    • %d, %i 十进制整数
    • %e, %E, %f 浮点格式
    • %g %e或%f转换,看哪一个较短,则删除结尾的零
    • %G %E或%f转换,看哪一个较短,则删除结尾的零
    • %o 不带正负号的八进制值
    • %s 字符串
    • %u 不带正负号的十进制值
    • %x 不带正负号的十六进制值,使用a至f表示10至15
    • %X 不带正负号的十六进制值,使用A至F表示10至15
    • %% 字面意义的%

    转义序列

    • \a 警告字符,通常为ASCII的BEL字符
    • \b 后退
    • \c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
    • \f 换页(formfeed)
    • \n 换行
    • \r 回车(Carriage return)
    • \t 水平制表符
    • \v 垂直制表符
    • \ 一个字面上的反斜杠字符
    • \ddd 表示1到3位数八进制值的字符,仅在格式字符串中有效
    • \0ddd 表示1到3位的八进制值字符

    实例

    printf "hello world"
    #!/bin/bash
    
    printf "%-5s %-10s %-4s\n" NO Name Mark
    printf "%-5s %-10s %-4.2f\n" 01 Tom 90.3456
    printf "%-5s %-10s %-4.2f\n" 02 Jack 89.2345
    printf "%-5s %-10s %-4.2f\n" 03 Jeff 98.4323
    
    • %-5s 格式为左对齐且宽度为5的字符串代替(-表示左对齐),不使用则是又对齐。
    • %-4.2f 格式为左对齐宽度为4,保留两位小数。

    5、dump命令

    文件备份和恢复

    dump命令用于备份ext2或者ext3文件系统。可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

    语法

    dump(选项)(参数)
    

    选项

    -0123456789:备份的层级;
    -b<区块大小>:指定区块的大小,单位为KB;
    -B<区块数目>:指定备份卷册的区块数目;
    -c:修改备份磁带预设的密度与容量;
    -d<密度>:设置磁带的密度。单位为BPI;
    -f<设备名称>:指定备份设备;
    -h<层级>:当备份层级等于或大于指定的层级时,将不备份用户标示为“nodump”的文件;
    -n:当备份工作需要管理员介入时,向所有“operator”群组中的使用者发出通知;
    -s<磁带长度>:备份磁带的长度,单位为英尺;
    -T<日期>:指定备份的时间与日期;
    -u:备份完毕后,在/etc/dumpdates中记录备份的文件系统、层级、日期与时间等;
    -w:与-W类似,但仅显示需要备份的文件;
    -W:显示需要备份的文件及其最后一次备份的层级、时间与日期。
    

    参数

    备份源:指定要备份的文件、目录或者文件系统。

    实例

    /home目录所有内容备份到/tmp/homeback.bak文件中,备份层级为0并在/etc/dumpdates中记录相关信息:

    ‍dump -0u -f /tmp/homeback.bak /home
    

    /home目录所有内容备份到/tmp/homeback.bak文件中,备份层级为1(只备份上次使用层次0备份后发生过改变的数据)并在/etc/dumpdates中记录相关信息:

    dump -1u -f /tmp/homeback.bak /home
    

    通过dump命令的备份层级,可实现完整+增量备份、完整+差异备份,在配合crontab可以实现无人值守备份。

    展开全文
  • linux根据时间过滤文件

    千次阅读 2019-05-29 10:41:00
    1、显示20分钟前的文件: find/sdb1/apache-tomcat-show/logs/ -type f -mmin +20 -exec...2、删除20分钟前的文件: find/sdb1/apache-tomcat-show/logs/ -type f -mmin +20 -exec rm {} \;3、显示20天前的文件 find...

    1、显示20分钟前的文件:
          find /sdb1/apache-tomcat-show/logs/ -type f -mmin +20 -exec ls -l {} \;

    2、删除20分钟前的文件: 
          find /sdb1/apache-tomcat-show/logs/ -type f -mmin +20 -exec rm {} \;

    3、显示20天前的文件
          find /sdb1/apache-tomcat-show/logs/ -type f -mtime +20 -exec ls -l {} \;

    4、删除20天前的文件
          find /sdb1/apache-tomcat-show/logs/ -type f -mtime +20 -exec rm {} \;

    下面为find命令的参数说明:

    -name 按照文件名查找文件。
    -perm 按照文件权限来查找文件。
    -prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用-depth选项,那么-prune将被find命令忽略。
    -user 按照文件属主来查找文件。
    -group 按照文件所属的组来查找文件。
    -mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。

    find命令还有-atime和-ctime 选项,但它们都和-m time选项。
    -nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
    -nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
    -newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
    -type 查找某一类型的文件,诸如:b - 块设备文件,d - 目录,c - 字符设备文件,p - 管道文件,l - 符号链接文件,f - 普通文件。
    -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
    -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
    -fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
    -mount:在查找文件时不跨越文件系统mount点。
    -follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
    -cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

    另外,下面三个的区别:
    -amin n  查找系统中最后N分钟访问的文件
    -atime n  查找系统中最后n*24小时访问的文件
    -cmin n  查找系统中最后N分钟被改变文件状态的文件
    -ctime n  查找系统中最后n*24小时被改变文件状态的文件
    -mmin n  查找系统中最后N分钟被改变文件数据的文件
    -mtime n  查找系统中最后n*24小时被改变文件数据的文件

    转载于:https://www.cnblogs.com/mliu/p/10942321.html

    展开全文
  • 作用: 统计一个文件内有多少字,字节,行,字串,不加任何参数默认统计文件内的行、字和字节数 语法: wc [选项] [文件名] 使用权限: 所有使用者 常用参数: -c:统计字节的数量 -m:统计字串的数量 -l:统计行的...

    grep

    作用: 使用正则表达式搜索文本,并把匹配的行打印出来。

    语法: grep [选项] [文件名]

    常用参数:

    -c 计算符合范本样式的列数。
    -v 反转查找。
    -l 列出文件内容符合指定的范本样式的文件名称。
    -L 列出文件内容不符合指定的范本样式的文件名称。
    -A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
    -b 在显示符合范本样式的那一行之外,并显示该行之前的内容。

    示例:

    grep match_pattern file_name
    grep "match_pattern" file_name
    

    wc

    作用: 统计一个文件内有多少字,字节,行,字串,不加任何参数默认统计文件内的行、字和字节数

    语法: wc [选项] [文件名]

    使用权限: 所有使用者

    常用参数:

    -c:统计字节的数量
    -m:统计字串的数量
    -l:统计行的数量
    -w:统计字的数量

    示例:

    [root@mail text]# wc test.txt
    4 5 26 test.txt
    

    其中4,5,26分别表示该文件的行数、字数和字节数


    sort

    作用: 用于进行文字排序

    语法: sort [选项] [文件名]

    使用权限: 所有使用者

    常用参数:

    -u:显示唯一不重复的内容
    -r:反向排序
    -f:排序的内容不区分大小写

    示例:

    sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

    [root@mail text]# cat sort.txt
    aaa:10:1.1
    ccc:30:3.3
    ddd:40:4.4
    bbb:20:2.2
    eee:50:5.5
    eee:50:5.5
    

    tr

    作用: 用于从标准输入中通过替换或删除操作进行字符转换

    语法: tr [选项] [字符串1][字符串2]

    使用权限: 所有使用者

    常用参数:

    -d :删除字符串1中所有输入字符

    示例:

    将标准输出的内容中字母a替换成x,字母b替换为y,字母c替换为z

    cat test.txt | tr "abc" "xyz"
    

    cut

    作用: 从指定文件中过滤或提取特定内容,并显示在当前屏幕上

    语法: cut [选项] [文件名]

    使用权限: all

    常用参数:

    -d:后面接分隔字符。与-f一起使用:
    -f:依据-d的分隔字符将一段讯息分区成为数段,用-f取出第几段的意思;
    -c:以字符(characters)的单位取出固定字符区间:

    范例:

    以:为分隔符,取出第一列

    cut -d: -f1 test.txt
    

    从第2个字母至第5个字母的内容提取出来

    cut -c2-5 test.txt
    
    展开全文
  • [标准输出]重定向 先清空文件的内容 然后再追加到文件的结尾 [root@oldboyedu43 data]# cat /root/data/oldboy.txt I am studying linux.oldboyedu.comIoldboy linux.[root@oldboyedu43 data]# echo "blog ...

    第1章 重定向
    1.1 > 或1>
    [标准输出]重定向 先清空文件的内容 然后再追加到文件的结尾
    [root@oldboyedu43 data]# cat /root/data/oldboy.txt
    I am studying linux.
    oldboyedu.com
    I
    oldboy
    linux.
    [root@oldboyedu43 data]# echo "blog oldboyedu com"
    blog.oldboyedu.com
    [root@oldboyedu43 data]# echo "blog oldboyedu com" >/root/data/oldboy.txt
    [root@oldboyedu43 data]# cat /root/data/oldboy.txt
    blog oldboyedu com

    1.2 >> 或1>>
    [标准输出]追加重定向 把内容追加到文件的结尾
    [root@oldboyedu43 data]# echo "oldgirl">>/root/data/oldboy.txt
    [root@oldboyedu43 data]# cat /root/data/oldboy.txt
    blog.oldboyedu.com
    oldgirl

    1.3 2>
    标准错误输出重定向 又名错误重定向 先清空文件的内容 把错误信息内容追加到文件的结尾
    1.4 2>>
    标准错误输出追加重定向 错误追加重定向 把错误信息内容追加到文件的结尾

    [root@oldboyedu43 data]# cho "oldgirl">>/root/data/oldboy.txt
    -bash: cho: command not found
    [root@oldboyedu43 data]# cat /root/data/oldboy.txt
    blog.oldboyedu.com
    oldgirl
    [root@oldboyedu43 data]# cho "oldgirl" 2>>/root/data/oldboy.txt
    [root@oldboyedu43 data]# cat /root/data/oldboy.txt
    blog.oldboyedu.com
    oldgirl
    -bash: cho: command not found

    同时把正确的信息还有错误的信息 都记录下来
    cho "oldboy" >>oldboy.txt 2>>oldboy.txt
    cho "oldboy" >>oldboy.txt 2>&1
    echo "qwer" &>>/data/yxd.txt

    1.5 标准输入重定向
    < 或 0< 标准输入重定向 告诉命令从哪里获取文件
    [root@oldboyedu43 data]# echo "1 2 3 4 5 6 7 8">/root/data/renyi.txt
    [root@oldboyedu43 data]# cat /root/data/renyi.txt
    1 2 3 4 5 6 7 8
    [root@oldboyedu43 data]# xargs -n2 <renyi.txt
    1 2
    3 4
    5 6
    7 8

    << 或 0<< 标准输入追加重定向
    #向一个文件追加多行文字
    cat >>/root/data/oldboy.txt<<EOF
    I
    am
    renyi
    EOF

    第2章 如何预防误删除
    1.把危险的参数放在最后面
    2.尽量使用相对路径删除目录
    3.删除的命令复杂化

    第3章 find
    可以查找出文件的内容或目录
    3.1 find命令的格式
    [root@oldboyedu43 data]# #find 在××× 什么类型 什么名字
    [root@oldboyedu43 data]# find /root/ -type f(d为目录) -name "oldboy.txt"
    /root/data/oldboy.txt

    3.2 find命令找出的文件 如何传递给其他命令(ls rm)
    需要find与|xargs 配合
    [root@oldboyedu43 data]# find /root/ -type f -name "oldboy.txt"
    /root/data/oldboy.txt
    [root@oldboyedu43 data]# find /root/ -type f -name "oldboy.txt"|xargs ls -l
    -rw-r--r--. 1 root root 106 Dec 11 18:23 /root/data/oldboy.txt
    3.3 和find搭配使用
    #找出以.txt结尾的文件
    #find /root/ -type f -name "
    .txt"
    #表示 所有东西/任何东西
    [root@oldboyedu43 data]# find /root/ -type f -name "
    .txt"
    /root/data/oldboy.txt
    /root/data/renyi.txt
    /root/data/li.txt
    第4章 如何退出当前目录以及删除目录
    退出到上一级目录删除 /root/data目录。(原来在/root/data)
    rm -rf 加上目录ming
    cd .. 可以返回到上一目录

    第5章 如何过滤显示内容
    5.1 方法1: grep
    5.1.1 不显示要找的内容
    [root@oldboyedu43 data]# grep -v "oldboy" /data/test.txt
    test
    liyao
    5.1.2 显示要找的内容
    grep "oldboy" /data/test.txt
    oldboy

    5.2 方法2: head显示文件的前两行
    [root@oldboyedu43 data]# head -n2 /data/test.txt
    test
    liyao
    [root@oldboyedu43 data]# head -2 /data/test.txt
    test
    liyao

    5.3 方法3:awk
    5.3.1 显示找的内容
    [root@oldboyedu43 data]# awk '/oldboy/' /data/test.txt
    oldboy
    5.3.2 不显示找的内容
    [root@oldboyedu43 data]# awk '!/oldboy/' /data/test.txt
    test
    liyao

    5.4 方法4:sed
    5.4.1 不显示要找的内容
    [root@oldboyedu43 data]# sed '/oldboy/d' /data/test.txt
    test
    liyao
    5.4.2 显示要找的内容
    sed -n '/oldboy/p' /data/test.txt
    oldboy
    小结:
    1.grep过滤
    2.head ,tail
    3.awk sed
    第6章 递归创建目录
    [root@oldboyedu43 data]# mkdir -p /oldboy/test
    [root@oldboyedu43 data]# ls -l /oldboy/
    total 4
    drwxr-xr-x. 2 root root 4096 Dec 11 20:23 test

    第7章 只查看指定的行数
    seq 50 >/oldboy/ett.txt
    7.1 .head + tail
    [root@oldboyedu43 oldboy]# head -30 /oldboy/ett.txt |tail -11

    7.2 .sed
    sed默认输出每一行的内容,-n取消默认输出
    显示第三十行的内容
    [root@oldboyedu43 oldboy]# sed -n '30p' /oldboy/ett.txt
    30
    显示20到30行的内容
    sed -n '从第20行到第30行p' /oldboy/ett.txt
    [root@oldboyedu43 oldboy]# sed -n '20,30p' /oldboy/ett.txt

    显示ett.txt文件的第25到35行。

    7.3 awk
    [root@oldboyedu43 oldboy]# awk 'NR==20,NR==30' /oldboy/ett.txt
    [root@oldboyedu43 oldboy]# #NR 在awk中表示行号

    7.4 grep
    [root@oldboyedu43 oldboy]# grep "20" /oldboy/ett.txt
    20
    [root@oldboyedu43 oldboy]# grep -A10 "20" /oldboy/ett.txt
    [root@oldboyedu43 oldboy]# grep -B10 "30" /oldboy/ett.txt
    [root@oldboyedu43 oldboy]# grep -C5 "35" /oldboy/ett.txt
    小结:
    1.head+tail
    2.sed
    3.awk
    4.grep了解

    第8章 如何替换文件中的内容
    8.1 先创建一个环境
    mkdir -p /oldboy/test
    cd /oldboy
    echo "oldboy">test/del.sh
    echo "oldboy">test.sh
    echo "oldboy">t.sh
    touch oldboy.txt
    touch alex.txt

    8.2 使用find命令找出你要处理的文件
    [root@oldboyedu43 oldboy]# find /oldboy/ -type f -name "*.sh"
    /oldboy/test.sh
    /oldboy/test/del.sh
    /oldboy/t.sh

    8.2.1 替换一个文件 (oldboy ----> oldgirl )
    sed -i 's#要替换的内容#替换成什么内容#g'
    [root@oldboyedu43 oldboy]# sed -i 's#oldboy#oldgirl#g' /oldboy/test.sh
    [root@oldboyedu43 oldboy]# cat /oldboy/test.sh
    oldgirl

    8.2.2 替换多个文件
    把find命令找到的文件 都交给sed命令进行替换
    [root@oldboyedu43 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed 's#oldboy#oldgirl#g'
    oldgirl
    oldgirl
    oldgirl

    修改文件内容
    [root@oldboyedu43 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs sed -i 's#oldboy#oldgirl#g'

    #####第6个里程碑-检查
    [root@oldboyedu43 oldboy]# find /oldboy/ -type f -name "*.sh"|xargs cat
    oldgirl
    oldgirl
    oldgirl

    转载于:https://blog.51cto.com/12928749/2050298

    展开全文
  • Linux 文件查找和内容过滤命令

    千次阅读 2018-08-28 10:11:01
    Linux 文件查找和内容过滤命令 linux 文件查找和内容过滤命令 grep、fgrep和egrep命令  这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行...
  • Linux 删除文件中空行的方法

    万次阅读 2017-09-30 17:35:43
    本文将介绍Linux 删除文件中空行的方法,对于行中只有空格,tab字符的,也可作为空行删除处理,提供完整演示实例。
  • 需要根据时间删除这个目录下的文件,/tmp,清理掉20天之前的无效数据。可以使用下面一条命令去完成:find /tmp -mtime +21 -name "*.*" -exec rm -Rf {} \;这个是根据时间删除。下面简要解释一下,这句...
  • linux 删除文件恢复

    千次阅读 2007-09-27 19:48:00
    Linux文件系统的反删除方法Ext3文件系统结构的简单介绍在Linux所用的Ext3文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有者,...
  • linux删除超过指定时间天数的文件

    千次阅读 2017-10-09 23:25:02
    不过通常我们也是将程序代码部署到云服务器作为一个应用服务器,也不会将云服务器当成一个文件服务器来用。 这就有一个问题,我们的日志文件,该如何保存。有些访问频繁的接口/页面很快就会将自身的磁盘给填充满。...
  • Linux过滤删除文件夹

    千次阅读 2019-03-26 00:18:44
    ls /VodDir/ | grep '[0-9]' | grep -v grep |awk '{system("rm -rf "$1)}' grep 表示过滤 awk 表示执行括号()里面的语句 '[0-9]' 表示正则表达式 ...表示删除/VodDir/下面以数字名命名的文件夹 ...
  • 示例:需要删除当前目录中名字为test打头的文件进行删除操作 使用-delete参数 find . -type f -name 'test*' -delete 使用xargs参数 find . -type f -name 'test*' | xargs rm -rf 使用-exec参数 find . -...
  • Linux反选删除文件

    万次阅读 2015-05-26 16:35:47
    Linux反选删除文件 最简单的方法是 # shopt -s extglob (打开extglob模式) # rm -fr !(file1)   如果是多个要排除的,可以这样: # rm -rf !(file1|file2) Linuxrm删除指定文件外的其他文件方法...
  • linux删除文件,或者保留某些文件

    千次阅读 2019-03-06 18:29:26
    解决问题可能不难,难的是你如何去发现这个问题,并用自己的语言描述这个问题,去查找问题的答案,讲真你如何去描述问题,或者去想比较巧妙地方法,能够极大程度提高你的工作效率,从而留下很多时间来取做别的事情,...
  • linux文件查找和内容过滤命令

    千次阅读 2013-11-08 13:25:45
    grep、fgrep和egrep命令 这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一...
  • Linux 删除文件中匹配的行

    千次阅读 2020-09-08 11:54:44
    就不能一下拉到底一起复制,所以就研究了下,Linux 可以通过命令,删除文件中匹配到的行。 seq sed -i ‘/preSql/d’ a.txt 删除匹配到preSql的行 sed -i ‘1d’ a.txt 删除第一行 sed -i ‘3~2d
  • linux 根据时间筛选删除文件

    千次阅读 2015-06-03 11:35:29
    根据时间筛选删除文件,自己写了个shell脚本,根据其他时间筛选的话,只需要修改 y= ( d a t e − r (date -r filename +%Y) 这段代码的%Y,可以改为%m,%H,%M ,%d 等,根据自己需要进行组合
  • sed -n '/2020-03-11 00:00*/,/2020-03-11 16:00*/p' ./logs/stdout.log > ./20200301.txt 可以修改时间段来获得具体某一时间段的日志信息。
  • Linux删除过期日志文件

    千次阅读 2021-02-23 18:15:37
    1 - Java定时任务直接删除本地指定文件,用过滤过滤出7天的文件,直接用删除文件,这个方法最直接,但是过滤的逻辑和过程就复杂了。 2 - Linux编写删除7天前的日志和图片,这个仅需两行代码即可
  • Linux-文件操作

    万次阅读 2018-04-08 00:18:18
    一、基本操作 1、新建文件 ...3、复制文件或目录 ...4、删除文件或目录 rm -r 目录 rm -f 文件 rm -rf 文件或目录 5、移动文件 mv 源文件 目标文件 二、查看文件 1...
  • find参数说明:find有很多参数是以动作首字母+时间的方式用于按访问、改变、更新时间来筛选文件。动作表达:- a(last accessed) 最近一次访问时间- c(last changed) 最近一次改变时间- m(last modified) 最近一次...
  • 点击打开链接在Linux上处理一些数据文件时,有时候需要将其中的空行过滤掉,系统中提供的各种工具都可以完成这个功能。将常用的介绍如下吧:1. grep复制代码代码如下:grep . data.txtgrep -v '^$' data.txtgrep '[^$...
  • 比如有一个 /mnt/cfs/web_code/P_PC_SYS/ 下面有几个目录 dira, dirb,dirc,config,.svn 现在要想把 /mnt/cfs/web_code/P_PC_SYS/ 拷贝到 /mnt/cfs/web_code/...######OK --过滤.svn rsync -av -e ssh --exclude=".s...
  • 2、在过滤出指定之间内的文件; 3、执行删除命令。 1 找出指定条件的文件 - find 命令 比如找出当前目录下的所有txt文件 find ./ -name '*.txt' 2 找出指定时间文件 找出最后20分钟内访问的文件 find ./ -name ...
  • 删除第一行 sed -i '1d' filename 范围删除删除1-3行 sed -i '1,3d' filename 删除第n行 sed -i 'nd' filename 删除最后一行 sed -i '$d' filename
  • LINUX 使用批量删除文件的几种方法

    万次阅读 2019-06-03 14:55:03
    我们都知道 linux 命令行 使用 rm 可以删除文件, 但是当有时候想要批量删除一些自动生成的文件(照片,音乐)等等自动生成命名的文件时, 我们需要怎么办呢, 下面是两种办法 1. 通过通配符批量删除文件 例如我的...
  • Linux反选删除文件Linuxrm删除指定文件外的其他文件方法汇总 rm删除除去指定文件的剩余所有文件 rm 反向删除 linux 删除其他文件 其他1条回答 如何反向选择文件删除反向显示文件 Linux反选删除文件 最...
  • Linux过滤

    千次阅读 2016-09-12 13:10:55
    最近在看《unix & Linux 大学教程》这本书 ,觉得看完鸟哥再看这本书收获 还是很多的,鸟哥告诉你how do,这本书告诉你why do ,...今天就记录一下过滤器的 相关命令,以备自己的查看,毕竟这些东西就是我的小工具箱。
  • 主要给大家介绍了关于如何利用 python 对目录下的文件进行过滤删除的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
  • Linux查看文件内容与处理文件

    千次阅读 2018-12-31 18:03:40
    一、查看文件内容 1、查看文件类型 file命令: 能够探测文件的内部,并决定文件是什么类型的。 用法:file [path]my_file my_file如果是目录,file命令会显示 "my_file : directory"。如果是文本文件,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 94,044
精华内容 37,617
关键字:

linux删除文件过滤时间

linux 订阅