-
格式化输出
printf '输出类型输出格式' 输出内容
输出类型:
- %ns:输出字符串。n是数字,指代输出几个字符
- %ni:输出整数。n是数字,指代输出几个数字
- %m.nf:输出浮点数。m和n是数字,指代输出的总位数和小数位数。如:%8.2f代表共输出8位数,其中2位为小数,6位是整数。
输出格式:
- \a:输出警告声音
- \b:输出退格键,也就是backspace键
- \f:清除屏幕
- \n:换行
- \r:回车
- \t:水平输出Tab键
- \v:垂直输出Tab键
注意:printf命令不支持管道符,所以
cat student.txt | printf '%s'
是不对的,应该是printf '%s' $(cat student.txt)
-
字符串截取命令
-
cut字段提取命令
grep是提取指定条件的行,而cut是提取指定条件的列:
cut [选项] 文件名
选项:
- -f 列号:提取第几列
- -d 分隔符:按照指定分隔符分割列
一般cut要和grep结合使用。适用于表格内容。
-
awk命令
awk '条件1 {动作1} 条件2 {动作2} ...' 文件名
例:输出student.txt的第一列和第三列
awk '{printf $1 "\t" $3 "\n"}' student.txt
or
awk '{print $1 "\t" $3}' student.txt
不带条件表示任何条件都执行这个动作。
print
可以自动换行。与
cut
命令相比,不管列和列隔多少空格都能识别。 -
sed命令
sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除。新增的命令。与vim相比,它可以通过管道符修改上一条命令的输出结果,而vim只能修改文件。
sed 选项 '动作' 文件名
选项:
- -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕。
- -e:允许对输入应用多条sed命令编辑。
- -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出。
动作:
动作 说明 a \ 追加,在当前行后添加一行或多行。添加多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 c \ 行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结。 i \ 插入,在当前行前插入一行或多行。插入多行时,除最后一行外,每行末尾需要用“\”代表数据未完结。 d 删除,删除指定的行。 p 打印,输出指定的行。 s 字符串替换,用一个字符串替换另一个字符串。格式为“行范围s/旧字符串/新字符串/g”。 例子:
-
查看文件的第二行:
sed -n '2p' student.txt
-
删除第二行到第四行的数据,但不修改文件本身
sed '2,4d' student.txt
-
在第二行后追加hello
sed '2a hello' student.txt
-
在第二行前插入两行数据
sed '2i hello \ world' student.txt
-
替换第二行的数据
sed '2c No such person' student.txt
-
-
排序命令sort
sort [选项] 文件名
选项:
- -f:忽略大小写
- -n:以数值型进行排序,默认使用字符串型排序
- -r:反向排序
- -t:指定分隔符,默认分隔符是制表符
- -k n[,m]:按指定的字段范围排序。从第n字段开始,m字段结束
该命令是按照文本的行排序,即纵向排序。
-
统计文本命令wc
wc 文件名
统计行数,单词数和字符数。除了统计文件以外,还可以通过管道符统计前一个命令的输出结果。