1.echo(输出)
-n:关闭换行
-e:解析启用解释反斜杠转义
echo -e '\047'
2.printf(格式化输出)
printf "%4s\n" "d" #s代表字符
printf "%o\n" 10 #o代表8进制数
printf "%04d\n" 10 #d代表整数 4代表占4位 0代表不足4位的0填充
printf "%1.2f\n" 1.234 #f代表浮点数
printf "%x\n" 11 #x代表16进制数
补充: 加上 \’ 表示 打印输入值的 ascii 码
printf '%x\n' \'a #打印a的ascii码
3.more(文件审阅)
more -10 +20 test.unl #-10表示每屏10行 +20 表示跳过20行
4.cat(查看文件)
-v:显示特殊字符
-A:特殊字符和行尾的$符
-n:显示行号
-b:显示行号,但是忽略空行
-s:多个空行只显示一个
5.tac(文件倒序查看)
6.rev(字符倒序)
$ echo '1234'|rev
4321
7.column(域对齐)
$ cat a.unl
1|2
22|33
21111112312|22
$column -t -s"|" a.unl #-t"域对齐" -s指定域分隔符
1 2
22 33
21111112312 22
8.join(文件拼接,文件需要先排序)
-t:指定域分隔符
-j:指定连接域
-a:需要显示的不匹配的域
-o:指定显示的域
join -t"|" -j1 2 -j2 1 a.unl b.unl #-t:指定分隔符 -j 指定连接域(第一个文件第二个域和第二个文件第一个域做连接)
join -a1 -a2 file1 file2 #-a1 显示文件1不匹配的行 -a2 显示文件2不匹配的行
join -o 1.1 2.2 file1 file2 #显示第一个文件第一个域,2.2显示第二个文件第二个域,
9.cut(文件分割)
-f:按照域分割
-d:指定分隔符
-c:按照字符分割
cut –d”|” –f3 a.unl
cut –d”|” –f3,6 test.unl
cut –d”|” –f3-6 test.unl
#单独的域使用 逗号(,)分割 连续的域使用 短横(-)分割
cut -c3,6 a.unl
10.tr(字符替换)
-d:删除所有的指定字符
-s:去重连续的指定字符
-c:替换指定字符外的其他字符
echo "1231231231" | tr "1" "2"
echo "1111222222" | tr -d "1"
echo "1111222222" | tr -s "1"
echo "1111222222" | tr -c "1" "3" 出了1之外的都替换为3
11.paste(按行合并文件)
-d:指定合并行间的分割符
-s:每个文件当做一个行合并为一个文件
paste -d”&” a.unl b.unl
paste –s a.unl b.unl 每个文件做一行合并