统计行数
wc -l file.txt
删除以#开头的行(注释行)
sed -e '/^#/d' file.txt
删除空白行
sed -e '/^$/d' file.txt
清空某个文件的内容
cat /dev/null > file.txt
创建一个新的文件(按CTRL+d结束录入)
cat > file.txt
or
> file.txt
查看文件内容,并在每行前面加上行号
cat -n file.txt
查看文件内容,在不是空行的前面加上行号
cat -b file.txt
合并两个文件的内容
cat file1.txt file2.txt > file_new.txt
合并两个文件的内容,并追回到一个文件
cat file1.txt file2.txt >> file_total.txt
# file_new若存在>或将其覆盖重写;而>>是在原有的基础上追加,对原来的内容不进行修改
a b为两个文本文件
cat a b | sort | uniq > c # c是a和b的合集(行的合集,都是以行为单位)
cat a b | sort | uniq -d > c # c是a和b的交集
cat a b b | sort | uniq -u > c # c是a和b的不同部分
汇总一个文本内容中第三列数字之和
awk '{ x += $3 } END { print x }' myfile
假设你有一个文本文件,比如一个web服务器日志,在某些行上有一些值,比如URL中的acct_id参数。如果你想统计每个acct_id的所有请求记录:
cat access.log | egrep -o ‘acct_id=[0-9]+’ | cut -d= -f2 | sort | uniq -c | sort -rn
如果你在多个文件中有个想替换的字段,这里有几种方法去做到。
1.要在当前文件夹下的所有以test打头的文件中,将Windows替换为Linux
perl -i -pe 's/Windows/Linux/;' test*
2.在当前的文件夹下的所有txt文件中,将Windows替换为Linux
find . -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt
Or
find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/'