TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
cat file # 查看file内容
head -n number file # 取文件前面number行
tail -n number file # 取文件后面number行
tail -f file # 实时观看file文件变化
tr " 1" "2 " #将内容1替换成内容2 例子:tr "\n" "空格" 即将竖行打印改为横行打印
tr -s " " # 缩进空格
rev # 将文件反向打印
wc file # 显示文件行数、字符数和字节数
hexdump # 二进制显示文件结果
sort # 排序,默认按数字字母排序
sort -nr # 倒序排列
sort -R #随机排列
uniq -c # 显示文件中每行重复的次数 (连续且完全相同才算重复)
uniq -d # 仅显示重复过的行
uniq -u # 仅显示不曾重复的行
取access_log文件里登陆次数前十的ip地址:cut -d" " -f1 access_log|sort|uniq -c|sort -nr
linux文本处理三大工具
grep sed awk
grep:
grep key file # 打印file文件中含key(如:关键词为root,含rooter单词的行也打印))关键字的行
grep -v key file # 打印不包含key的行
grep -w key file # 包含key(整个单词,例如:关键词为root,含rooter单词的行不打印)的行
grep -o key file # 查找并只打印出关键字
grep -n key file # 打印搜索到的行并显示其行号
sed option “地址命令” file
sed -n “地址命令” file # (加 -n 只打印符合地址的行)
sed "s/位置1/位置2/g" file #搜索file文件中所有位置1替换为位置2(g为全局替换)
awk:
awk [options] "pattern{action statements;..}" file # awk用法一般格式
awk [options] "BEGIN{ action;… } pattern{ action;… } END{ action;… }" file
BEGIN{action;...} # 文件先用该语句处理后再传入pattern中
END{ action;… } # 文件经BEGIN{ action;… } pattern{ action;… }处理后的结果再用END语句处理
BEGIN{action;...}和END{ action;… } 是可选的,pattern{ action;… }是必须要有的
一般action都为print或printf(printf支持格式化输出打印)
-F 指明输入时用到的字段分隔符
-v var=value: 自定义变量
FS # 输入字段分隔符,默认为空白字符
例子:awk -v FS=":" "{print $1,FS,$3}’ /etc/passwd
OFS # 输出字段分隔符,默认为空白字符
例子:awk -v FS=‘:’ -v OFS=‘:’ "{print $1,$3,$7}’ /etc/passwd
条件表达式(三目表达式):selector?if-true-expression:if-false-expression(如果selector为true时执行?后语句;如果selector为false时执行:后语句)
例子: awk -F: "{$3>=1000?usertype="Common User":usertype="Sysadmin or SysUser";printf "%15s:%-s\n",$1,usertype}" /etc/passwd
NF #字段;例子:awk -F: "{print NF}" /etc/passwd (打印以:作为字段分隔符每个记录共分为几个字段)
NR #记录数; 默认文件以换行符(\n=回车)为一条记录
|
|