我是靠谱客的博主 傻傻小蚂蚁,最近开发中收集的这篇文章主要介绍linux批量清空文件命令,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

系统查看:

测试CPU是小端序还是大端序:

#1为小端模式,0为大端模式
echo -n I | od -o | head -n1 | awk '{print $2}'| cut -c6

#或通过lscpu命令,显示 Little Endian / Big Endian
lscpu | grep 'Byte Order'

查看CPU是32位还是64位:

#显示架构名称,如x86_64、ppc等
uname -m

#或通过lscpu命令显示架构名称
lscpu | grep 'Arch'

--

数学运算:

16进制数字转10进制:

#16进制转10进制
((num=0x11)); echo $num

#10进制转16进制
echo "obase=16;17"|bc

--

进程操作:

根据进程名使用进程pid,如果多个进程用空格分割pid:

echo `ps aux | grep ProcName | grep -v 'grep' | awk '{print $2}'`

echo `pgrep ProcName`

根据进程名使用多个进程pid,多个进程用-p分割pid:

echo `ps aux | grep ProcGroupName | grep -v 'grep' | awk '{print "-p " $2}'`

echo `pgrep ProcGroupName | awk '{print "-p " $1}'

非交互使用top,显示某个进程的信息3次,然后退出:

top -b -n 3 -p $pid

--

网络操作:

获取本机ipv4地址:

echo `ip a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"|head -1|cut -d / -f 1`

--

字符串操作:

将字符串用空格分割并取第2、3、4个字段:

echo $str | cut -d ' ' -f 2,3,4

将字符串用空格分割并取最后一个字段:

echo $str | rev | cut -d ' ' -f 1 | rev

将字符串用空格切分为数组用于for循环:

echo "1 2 3" | cut -d ' ' -f 1-

删除字符串开头末尾中间的空格和末尾的换行:

echo -n " 12 34 56 " | sed s/[[:space:]]//g | wc -c
#6

只是删除行尾的换行:

echo "sss" | xargs echo -n

将零字符替换为换行:

sudo cat /proc/$pid/environ | tr '' 'n'

--

文件操作:

查看目录下哪些文件不包含某个字符串:

ls ./ | xargs grep -L excludeStr

批量搜索多个文件中的最后一行错误日志:

for f in $(find ./output/*.log); do grep "error" $f | tail -1; done

并加上文件名(注意文件名前后不要加重定向符号<>,小心文件被清空):

for f in $(find ./output/*.log); do echo "== $f =="; grep "error" $f | tail -1; done

将文件内容按行统计出现次数,并按出现次数降序显示:

cat log | sort | uniq -c  | sort -r

将gz日志去掉前导时间戳后(例如只取第51个和之后的字符),对报错内容进行归类:

zcat my.log.gz | cut -c 51- | sort | uniq -c

查看当前目录和一级子目录的大小,不显示当前目录下的文件:

#当前目录
du -h -d 1

#指定其他目录
du -h -d 1 /tmp

给文件名批量加时间后缀:

ls | xargs -I {} mv {} {}.`date +"%Y%m%d%H%M%S"`

将output文件夹下的日志文件批量移到output-old目录下,并添加时间后缀:

ls ./output/*.log | sed -nr 's/./output/(.*)/ mv ./output/1 ./output-old/1/gp' | xargs -I {} echo {}.`date +"%Y%m%d%H%M%S"` | sh

删除一个小时前的日志文件:

find ./ -cmin +60 -name "*.log" | xargs rm

批量清空文件:

ls | xargs truncate -s 0

tail -f 指定时间后自动终止:

#10s后终止tail -f
timeout 10 tail -f my.log

修改文件最后更改时间为指定日期:

#2013-09-15 12:00
touch -t 201309151200 -m redis-16379.log

给无法输入的乱码文件名改名:

#查看inode号
ls -i
#通过inode号选择文件并改名
find . -inum $inode | xargs -i mv {} other_name

--end--

最后

以上就是傻傻小蚂蚁为你收集整理的linux批量清空文件命令的全部内容,希望文章能够帮你解决linux批量清空文件命令所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部