社区
系统维护与使用区
帖子详情
cut能换域的顺序吗
gjwestlife
2008-09-26 11:23:53
eg: cut -f1,2 -d, file1
此命令先输出第一个域,然后再输出第二个域,如果我想先输出第二个,然后再第一个应该怎么做呢,谢谢
...全文
284
9
打赏
收藏
cut能换域的顺序吗
eg: cut -f1,2 -d, file1 此命令先输出第一个域,然后再输出第二个域,如果我想先输出第二个,然后再第一个应该怎么做呢,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xwmeric123
2008-09-28
打赏
举报
回复
[Quote=引用 8 楼 gjwestlife 的回复:]
我在学校机器上测试,说uniq没有 -w选项。。。。。。。。学校系统是bash的shell
在弱问一下,如果第一个域的字符不是一样多,比如 aaa
abcd
ca
这样还能用 uniq -w3 吗
如果不行还有别的方法吗
[/Quote]
能用的。
cut没办法交换两列,如果uniq没有-w选项的话就没办法比较第一个域了(前提是有多个域)。
gjwestlife
2008-09-27
打赏
举报
回复
谢谢楼上的方法,但是题目要求只能用head,tail,cut, sort, uniq, tr, wc这些命令,能不能再帮我看看哦
题目是
aaa,12
bbb,13
aew,9
aaa,15
ccc,18
ddd,10
eee,5
要求选出第二个域前4个最大的,打印出对应的第一个域来,只能用head,tail,cut, sort, uniq, tr, wc这些命令,也就是答案应该是:
ccc
aaa
bbb
ddd
如果写 sort -t, -k2 -nr file1 | cut -d, -f1 | uniq | head -n 4 这样的答案是
ccc
aaa
bbb
aaa
这样是不对的,因为不能重复出现,也就是只能选最大的aaa
所以我想的是如果能换列,然后排序成
18,ccc
15,aaa
12,aaa
13,bbb
10,ddd
再用 uniq -f1 就可以得到正确答案了,不知我的想法是否可行,或者有没有别的方法,我已经想了很久,望高人指点
gjwestlife
2008-09-27
打赏
举报
回复
顶一下,好心人帮帮忙吧
gjwestlife
2008-09-27
打赏
举报
回复
我在学校机器上测试,说uniq没有 -w选项。。。。。。。。学校系统是bash的shell
在弱问一下,如果第一个域的字符不是一样多,比如 aaa
abcd
ca
这样还能用 uniq -w3 吗
如果不行还有别的方法吗
xwmeric123
2008-09-27
打赏
举报
回复
sort -t, -k1,1 -k2,2nr file | uniq -w3 | sort -t, -k2,2nr | cut -d, -f1 | head -n 4
xwmeric123
2008-09-27
打赏
举报
回复
sort -t, -k1 -r file | uniq -w 3 | sort -t, -k2 -nr | cut -d, -f1 | head -n 4
joyself
2008-09-26
打赏
举报
回复
看错了 你的分隔符是 ,
awk -F, '{ print $2"\t" $1}' file
joyself
2008-09-26
打赏
举报
回复
楼上说的对,cut不行。
awk -F: '{ print $2"\t" $1}' file
还可以在{}里用printf,看你的需求
xwmeric123
2008-09-26
打赏
举报
回复
用awk吧
shell中
cut
用法简介
shell中的
cut
命令 (2010-03-30 17:05:31) 转载▼ 标签: shell
cut
杂谈 分类: shell
cut
是以每一行为一个处理对象的,这种机制和sed是一样的。(关于sed的入门文章将在近期发布) 2
cut
一般以什么为依据呢? 也就是说,我怎么告诉
cut
我想定位到的剪切内容呢?
cut
命令主要是接
cut
命令详解
cut
是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。 (1)其语法格式为:
cut
[-bn] [file] 或
cut
[-c] [file] 或
cut
[-df] [file] 使用说明
cut
命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数,
cut
命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。 主要参数 -b :以字节为单位进行分割。这些字节
linux之
cut
用法
cut
是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。 (1)其语法格式为:
cut
[-bn] [file] 或
cut
[-c] [file] 或
cut
[-df] [file] 使用说明
cut
命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数...
cut
用法简介
cut
是以每一行为一个处理对象的,这种机制和sed是一样的。 1、
cut
一般以什么为依据呢? 也就是说,我怎么告诉
cut
我想定位到的剪切内容呢?
cut
命令主要是接受三个定位方法: 第一,字节(bytes),用选项-b 第二,字符(characters),用选项- 第三,域(fields),用选项-f 2、 以“字节”定位,给个最简单的例子? 举个例子吧,当你执行ps命令时,会输出类似如下的内容: [rocrocket@rocrocket programming]$ who rocrocket :0
shell 之
cut
命令
这个时候,以域定位就派上用场了,简单来说,就是先设置间隔符,再设置提取第几个域,就好了。注:以上效果是在 Mac 上的效果, Linux 下可能会有区别,尤其是 末尾的。定位会先将标志位从小到大排序再截取,打乱先后
顺序
再执行,效果和以上是一致的。如果我们想取第一个冒号之前的内容,第二个-第三个冒号之间的内容,我们怎么办呢。在处理多空格间隔的域时,比较麻烦,它擅长处理『以一个字符间隔』的文本内容。如果是文本内容都是纯单字节字符,字符定位和字节定位的效果是一致的。它看似没有任何规律,但又是有规律的。
系统维护与使用区
19,614
社区成员
74,557
社区内容
发帖
与我相关
我的任务
系统维护与使用区
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
复制链接
扫一扫
分享
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章