文本处理命令
cat(concatenate)
-A 显示Tab,换行等特殊字符
-n 显示行号 // cat -n 可以用
nl 代替
-E 每行最后显示换行符
tac和cat不同在于,tac从倒数第一行开始显示
翻页shift+PgUp/PgDn,cat的缓存是有限的,不一定能查看到所有输出
cat <<ENDid >/tmp/test.out 将手动建立一个文档并重定向,ENDid表示该文档结束(常见的为EOF),比每行都 echo 要好很多。
tac
完成行间反转
rev(reverse lines of a file or files)
完成一行字符串反转,
rev
files ,也支持管道
less(man就是调用less查看manual)
-N 显示行号
回车 显示下一行
空格 显示下一屏
k 显示上一行
b 显示上一屏
G 跳到尾行
gg 回到首行
head
head -n 10 /etc/passwd 查看前10行(可以简写为 head -10 /etc/passwd)
tail
-f
follow,执行完后不退出,等待显示后续追加的新内容
tail -n 10 /etc/passwd 查看末尾10行(可以简写为 tail -10 /etc/passwd)
sort 默认自左向右逐个字符比较
-n 按数字大小排序,而非按字符
-r 逆序
-t 字段分隔符 -k 以哪个字段为关键字进行排序(一行中有多个字段的场景)
-u 相同行只显示一次
-f 排序时不区分大小写
uniq
相邻的重复行才认为是重复,所以通常是先sort将重复行归到一起在去重
-c 对重复次数做统计
-d
-u
wc
打印文本文件的行数,字数和字符数
-l 仅显示行数
-w 显示多少单词
-m 显示多少字符
cut
以行为单位处理文本
-d
delimiter,指定字段分隔符,默认为[Tab]
-f
field,指定要显示的字段,如-f1 -f1-3 -f1,3
tr 转换或删除字符
支持文件标准输入
< 和管道
|
-s 重复字符仅显示一次,即字符去重 echo "ssss" | tr -s "s"
-d
delete,删除字符集中包含的字符
tr 'an' AB' < /etc/passed 以AB来替换ab
tr -d 'an' </etc/passwd 删除an
tr -d -c 'a-z' < /etc/passwd -c表示字符集的补集
echo "aaabbccdefg" | tr -s 'a-z' 连续重复的字符只显示一个
od(读二进制文件)
od [-TYPE] FILE
TYPE可为:
c(使用ASCII字符来输出),
x(16进制输出数据)
hexdump
-C FILE Canonical Hex+ASCII display
-n # 指明查看多少byte
bc
scale 给出小数点后面保留位数
echo "scale=2; 111/7;" | bc
bc <<< "scale=4; 11/7;"
obase=16
bc下 3*5 得 F
ibase and
obase define the conversion base for input and output numbers