7 shell命令之cut
来源:互联网 发布:西部数据wd mac格式化 编辑:程序博客网 时间:2024/05/22 02:15
很久之前就不是很系统的学习了linux常用的处理字符的命令.虽然当时学习进展自己也很满意.但是过后又容易忘记.
现在系统的学了linux的shell命令.简单的总结一下:
cut顾名思义,用来把目标砍成一段一段的.简单看下用法.
cut [-b | -c | -f ] "数字" -d "seprate" --complement --output-delimiter
-b以字节为单位进行分割
-c以字符为单位进行分割
-f以单词为单位进行分割.
说实话,-b-c我实在不知道该怎么区分,怎么用也看不出区别.至少规则文件,一个自己就是一个字符啊.
这三个选项后面可以跟数字,比如:
cut -f 1 filename 表示仅仅显示第一列
cut -f 1,2 filename 表示显示1和2列
cut -f 1-4 filename 表示显示1到4列
-d 指定分割符.默认是\t.这个后面用一个小例子说明一下,吃过亏,往往记得牢.
--complement 取补集.不难理解对吧.
--output-delimiter 输出分隔符.
常用的就是这些.下面结合我的一个乌龙来简单的用一下cut.
我用vim编辑了一个规则的文件.
NoNameMarkPercent1Sarath45902Alex49983Anu4590满以为结果会完全和预期一样.结果被打脸.
相信原因一目了然,无非就是分隔符的问题.
为什么会有这种问题呢.我明明键入的时候,用的是tab啊.
这要从vim说起.
vim有个命令叫set expandtab.可能是为程序员专门这几的,目的是将tab拓展成指定宽度个数的空格.所以看似它是tab,其实已经替换成空格了.
怎么办呢?
先说说怎么查看是否有tab分割.
1. 如果在vim下.冒号set list .就可以查看分隔符的类型了.换行是$ , tab是^I .一幕了然.我得vim因为没有tab结果就是这样的.
2. 如果不在vim环境下,也好办,用cat -T .也可以查看.结果不贴了.
怎么解决呢?方法也有很多种.
1. 同样先从vim环境下说起吧.确认没有tab以后首先:set noexpandtab . 然后:%s/ \+/\t/g
就可以了.注意千万不要把+换成*.会死的很惨.正则表达式里面,+的意思是至少有一个,而*号的意思是可以没有.
2. sed命令解决.正则是一样的.sed -i "s/ \+/\t/g"
3. tr命令解决:要稍微绕一点.tr命令回头再详细介绍.先领略一下它的魅力. tr -s " " < filename | tr " " "\t"
补充: tr职能从标准输入接受数据.其输出只能到标准输出.同学们如果要用这个命令,不要忘记在最后重定向一下.
-s 去除其后面接的参数的重复,只保留一个. 然后在把空格替换成\t
好滴,修改以后的文件使用cat看下:
ok.看下各个场景的结果吧.
补充一点: -f -c -b后面可以接的数字类型:
n,m 打印n和m
n-m 打印n到m
n- 从n开始打印直到最后
-m 从头开始打印直到m
ok,就总结这么多吧.有兴趣的同学,可以立刻就敲敲,加深一下印象.
- 7 shell命令之cut
- linux shell之cut命令
- Shell基础之-cut命令
- Linux Shell之cut命令
- shell字符截取命令之cut命令
- linux下shell命令之cut
- shell学习之cut,sed命令
- shell字符串截取之cut命令
- shell cut命令
- [SHELL]:cut 命令详解
- shell中的cut命令
- shell cut命令
- shell cut命令
- shell中的cut命令
- Linux Shell 命令--cut
- shell中的cut命令
- cut命令 -- shell
- shell中的cut命令
- PHP扩展开发探索(一)
- HTML5 meta标签属性
- Selenium各种工具比较
- Balance( POJ1837)
- LeetCode Word Break II
- 7 shell命令之cut
- Hibernate学习总结
- Guava RateLimiter在Web应用中的使用
- 黑马程序员——正则表达式
- 【OpenCV归纳】3 在实例中学习简单函数以及数据读写
- 【OpenCV归纳】4 关于HighGUI
- 少女漫「不思议游戏」新作
- 解决在虚拟机里无法装ghost系统的问题的方法
- 勿忘所受之耻,发奋图强以报