设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站已关闭,不再开放。PC时代已远逝,拥抱云原生时代,拥抱k8s,请移步:https://www.v2k8s.com

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 4683|回复: 9

[shell] 请教一下各位如何判断一个数在第几列 [复制链接]

论坛元老

挨踢路上求取真经

Rank: 8Rank: 8

签到
1583
注册时间
2011-2-20
最后登录
2018-3-22
在线时间
743 小时
阅读权限
90
积分
156528
帖子
148
主题
5
精华
0
UID
12079
发表于 2012-2-17 14:46:11 |显示全部楼层
请教一下各位如何判断一个数在第几列,比如下面一个文件,我想知道14在第几列,该怎么写?                 

                     1   2   3
4   5   6    7  8   9  10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Rank: 6Rank: 6

注册时间
2010-4-1
最后登录
2020-6-27
在线时间
16 小时
阅读权限
70
积分
3847
帖子
28
主题
4
精华
0
UID
8693
发表于 2012-2-17 15:20:34 |显示全部楼层
列数是固定的么
perl版本的楼主参考一下
perl -anle 'for (0 ..$#F) {print $_+1 if $F[$_] eq 14;}' test.file

使用道具 举报

论坛元老

挨踢路上求取真经

Rank: 8Rank: 8

注册时间
2011-2-20
最后登录
2018-3-22
在线时间
743 小时
阅读权限
90
积分
156528
帖子
148
主题
5
精华
0
UID
12079
发表于 2012-2-17 15:41:58 |显示全部楼层
yz86yz 发表于 2012-2-17 15:20
列数是固定的么
perl版本的楼主参考一下
perl -anle 'for (0 ..$#F) {print $_+1 if $F[$_] eq 14;}' test. ...

谢谢!

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-25
最后登录
2016-6-29
在线时间
356 小时
阅读权限
90
积分
23577
帖子
271
主题
44
精华
0
UID
10721
发表于 2012-2-17 16:36:59 |显示全部楼层
请参考:
cat -n data | sed -n '/14/p'|awk '{ for(i=2;i <= NF;i++) if($i == "14" ) print $1,i-1}'

结果是:
行号 列号

适用于出现多次想找的情况

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-4-14
最后登录
2018-11-5
在线时间
366 小时
阅读权限
90
积分
11574
帖子
100
主题
2
精华
0
UID
2467
发表于 2012-2-17 17:41:15 |显示全部楼层
  1. awk -v mem="14" '{for(i=1;i<=NF;i++){if($i == mem )print "line:"NR,"row:"i}}'
复制代码
替换mem的值为你需要的即可!

使用道具 举报

论坛元老

挨踢路上求取真经

Rank: 8Rank: 8

注册时间
2011-2-20
最后登录
2018-3-22
在线时间
743 小时
阅读权限
90
积分
156528
帖子
148
主题
5
精华
0
UID
12079
发表于 2012-2-17 18:39:29 |显示全部楼层
感谢楼上几位兄弟的热心!

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-12-27
最后登录
2015-5-10
在线时间
361 小时
阅读权限
90
积分
49245
帖子
156
主题
12
精华
0
UID
11586
发表于 2012-2-17 19:30:13 |显示全部楼层
牛x啊。

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-2-26
最后登录
2017-5-2
在线时间
600 小时
阅读权限
90
积分
82550
帖子
789
主题
41
精华
0
UID
8062
发表于 2012-2-18 11:05:55 |显示全部楼层
awk '{for(i=1;i<=NF;i++){if($i==14){print i;break}}}'  urfile
<-sina_sign,1300626711,936f3b91,1->

使用道具 举报

Rank: 8Rank: 8

注册时间
2010-10-15
最后登录
2016-4-3
在线时间
1023 小时
阅读权限
90
积分
175563
帖子
696
主题
14
精华
0
UID
10623
发表于 2012-2-19 22:31:14 |显示全部楼层
date -d 20120314 +%w+1|bc
来个与众不同的答案,应该也能满足LZ的需要吧

使用道具 举报

Rank: 6Rank: 6

注册时间
2010-4-17
最后登录
2014-3-18
在线时间
104 小时
阅读权限
70
积分
7458
帖子
38
主题
1
精华
0
UID
8933
发表于 2012-2-20 22:23:03 |显示全部楼层
  1. awk '{for(i=1; i<=NF; i++){if($i == 14)print NF}}' file
复制代码

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2021-4-16 02:25 , Processed in 0.024231 second(s), 14 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部