一、 从linux日志文件中读取数据并处理的脚本程序 g317
#!/bin/bash
exec 0< testfile
count=1
while read line
do
echo "line #$count: $line"
count=$[ $count + 1 ]
done
二、 快速清除文件(例:日志文件)中所有数据,而不必删除再重新创建 g324
cat /dev/null > testfile
三、查找文件夹
-type指明该name的属性
查找ipc文件夹
find ~/pkg/petalinux -type d -name ipc
四、从文档中删除空白行的快速方法
sed '/^$/d' file1.txt
命令行直接输入上面的命令,就可以删除空白行
五、查看PATH变量值时希望以换行符分隔各条数据,方便查看,而不是以冒号分隔
echo $PATH | sed 's/:/\n/g'
六、查看文件中的部分行
6.1 查看日志文件的最后几行
tail log_file // 默认查看最后10行
tail -n 2 log_file=tail -2 log_file //查看最后2行
-f参数可以实时监测日志,持续显示添加到日志文件中的内容(由于文件开头一般不会改变,故此参数不适合head)
6.2 查看文件的前面几行
head log_file // 默认查看前10行
head -5 log_file //查看前5行
tail和head都支持破折号加行数,省略字母n
七、删除file1和file2两个文件(夹)之外的其他文件(夹)
ls | grep -ve file1 -ve file2 | xargs sudo rm -rf
ls | grep -ve file1 -ve file2 | xargs -I del_file sudo rm -rf /dir/del_file //-I参数(大写的i), 可以对传过来的参数取个统一的别名,这里是del_file,执行时,具体的参数会替换掉del_file, 这样可以指定要删除的路径,比如是/dir目录下的各参数表示的文件
find ../dir1/* -print0 | xargs -0 -p -I {} sh -c 'ln -s {} $(basename {})'
-p: 先显示要执行的命令,没有问题输入y再执行
在xargs中不能使用命令替换等,因为他会在执行语句命令前先行执行命令替换,也就是反应号的执行是在xargs中需要执行的命令之前执行,可以通过用sh -c来把命令替换语句变成单引号括起来表示的原样字符串即可。
-v代表反转,-e代表可以指定多个匹配模式
xargs代表将管道前面传过来的数据作为xargs后面指令的参数
rm -rf !(file1) #删除file1文件之外的所有文件(夹)
rm -rf !(file1|file2) #删除file1和file2文件之外的所有文件(夹)
八、查看链接文件的最终目标的多种方法
https://blog.csdn.net/xiang_shao344/article/details/82424292
九、查找所有文件里是否包含某个字符串,也可以用在大文件包含若干个小文件夹
grep -rn "<要查找的字符串>" ./*
-r表示递归,-n显示行号,./*在当前目录下的所有文件(夹),递归查询
十、Centos下查询库文件属于哪个包
yum whatprovides <库文件名>
11、批量解压缩
find * -print0 | xargs -0 -I {} sh -c 'file={};unzip {} -d "${file%.*}"'
将当前路径的zip文件解压到同名的文件夹下