shell中字符串截取命令:cut,printf,awk,sed |
您所在的位置:网站首页 › shell中截取字符串前4位 › shell中字符串截取命令:cut,printf,awk,sed |
cut
cut 命令不能在分割符是空格的字符串中截取列,只能是 制表符 或 具体的分割符。
选项
-b :仅显示行中指定直接范围的内容;
-c :仅显示行中指定范围的字符;
-d :指定字段的分隔符,默认的字段分隔符为"TAB";
-f :显示指定字段的内容;
-n :与"-b"选项连用,不分割多字节字符;
--complement :补足被选择的字节、字符或字段;
--out-delimiter= :指定输出内容是的字段分割符;
--help :显示指令的帮助信息;
--version :显示指令的版本信息。
使用
-d :分隔符 ( --delimiter 按照指定分隔符分割列 )
-b : 表示字节
-c : 表示字符
-f : 表示字段(列号) ( --field 提取第几列 )
N- : 从第N个字节、字符、字段到结尾
N-M : 从第N个字节、字符、字段到第M个
-M : 从第一个字节、字符、字段到第M个
$> cat user.txt
01, zhang, M, 18
02, wang, M, 20
03, li, M, 21
# 以","分隔,显示第二列
$> cut -d "," -f 2 user.txt
zhang
wang
li
# 以","分隔,显示第1列和第3列
$> cut -d "," -f 1,3 user.txt
01, M,
02, M,
03, M,
# 以","分隔,显示第1-3列
$> cut -d "," -f 1-3 user.txt
01, zhang, M,
02, wang, M,
03, li, M,
# 以","分隔,显示除第1列以外的其他列
$> cut -d "," -f 1 --complement user.txt
zhang, M, 18
wang, M, 20
li, M, 21
## 注意前面是有空格的!
###### 字符串
$> cut -c1-5 user.txt
01, zh
02, wa
03, li
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 %s 1 2 3 4 5 6 # 把123456当成一个字符串输出,没有格式 printf %s %s %s 1 2 3 4 5 6 # 把%s%s123456当做字符串输出,没有格式 printf '%s ' 1 2 3 4 5 6 # 把1 2 3 4 5 6当做字符串输出,输出格式为空格 printf '%s\n' 1 2 3 4 5 6 # 输出格式为1个一行 printf '%s %s %s' 1 2 3 4 5 6 # 把内容当做字符串三个为一组输出,1 2 34 5 6 printf '%s %s %s\n' 1 2 3 4 5 6 # 输出格式为3个一行 printf '%s' $(cat user.txt) # 输出文本内容为字符串 printf '%s\t %s\t %s\t %s\n' $(cat user.txt) # 把文本内容格式化输出 建议 man printf 查看可用的输出格式,和C的 printf 格式一样。 awk 命令awk '条件1{动作1} 条件2{动作2} ...' 文件名 ( 如果条件1,执行动作1;如果条件2,执行动作2 ) 条件(pattern):一般使用关系表达式作为条件 x > 10 : 判断变量x是否大于10 x >= 10 : 大于等于 x |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |