字符截取命令cut,附printf命令

cut

cut字段提取命令,按列提取

cut [选项] 文件名

选项:
-f 列号:提取第几列
-d 分隔符:按照指定分割符分割列
默认分隔符是 tab键。
如果文件中的分隔符是空格,cut命令不能正确提取。

cut -f 2 文件名
cut -f 2,3 文件名    
cut -d ":" -f 1,3 文件名

cut和grep命令结合使用

cat /etc/passwd | grep /bin/bash | grep -v root | cut -d ":" -f 1

在这里插入图片描述
cut不能完成的就考虑 awk编程

printf

printf '输出类型输出格式' 输出内容

输出类型:
%ns:输出字符串。n是数字指代输出几个字符
%ni:输出整数。n是数字指代输出几个数字
%m.nf:输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表总共输出8位数,其中2
位是小数,6位是整数。

输出格式
\a:输出警告声音
\b:输出退格键,也就是Backspace
\f:轻触屏幕
\n:换行
\r:回车,也就是Enter键
\t:水平输出退格键,也就是Tab键
\v:垂直输出退格键,也就是Tab键

printf不能在管道符后面,只能接受$(参数)的形式,代表里面是系统命令
printf不如cat或者echo输出文件方便。
awk命令中不能调用系统命令cat、echo,所以使用printf
printf ‘%s’

[root@hadoop001 ~]# cat test.txt 
11 22 33 44
我 是 你 猪
[root@hadoop001 ~]# printf '%s' test.txt 
test.txt[root@hadoop001 ~]# 
[root@hadoop001 ~]# printf '%s' $(cat test.txt)
11223344我是你猪[root@hadoop001 ~]# 
[root@hadoop001 ~]# 
[root@hadoop001 ~]# printf '%s %s %s %s\n' $(cat test.txt)
11 22 33 44
我 是 你 猪
[root@hadoop001 ~]# 

在awk命令的输出中支持print和printf命令
print:print会在每个输出之后自动加入一个换行符(Linux,默认没有print命令)
printf:printf是标准格式输出命令,并不会自动加护换行符,如果需要换行,需要手工加入换行符。

你可能感兴趣的:(Shell大全)