找到字段的编号
我的文件中有这一行:
,2,353867835022;11,353681041426390,272023201187741,272-02f-20017-06609,353854100352;11,,,,,,,0854100352,3,00,,O,D,DATA,,,7124395,,,17687,16,HPLMN,M20MSS_TTFILE_8377_20110528170245,M20MSS,W30B22I;0GRI3,1,20110528130013,170054,1,41,,,,,,,,0,,,,,,,,,,,,,,,,,,353868001820,,,,b60a5c0014,1:353867835022::::0854100352::353854100352,,,,,,,,
是的, 这是一个逗号“,”分隔的文件。有一个数字 17687 。我想知道该行中该字段的编号是多少。 我想使用它作为基础并将其包含在 shell 脚本中。
i have this line in the file:
,2,353867835022;11,353681041426390,272023201187741,272-02f-20017-06609,353854100352;11,,,,,,,0854100352,3,00,,O,D,DATA,,,7124395,,,17687,16,HPLMN,M20MSS_TTFILE_8377_20110528170245,M20MSS,W30B22I;0GRI3,1,20110528130013,170054,1,41,,,,,,,,0,,,,,,,,,,,,,,,,,,353868001820,,,,b60a5c0014,1:353867835022::::0854100352::353854100352,,,,,,,,
Yes,
this is a comma"," separated file.there is a number 17687 .I want to know what is the number of that field in the line.
i want to use that as a base and include that in a shell script.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
值 17687 位于字段 #26 中:
这允许在多行的多个字段中查找 17687。
The value 17687 is in field #26:
This allows for finding 17687 in multiple fields on multiple lines.
那么,您想要 17687 之前的逗号数量吗?一种方法是:
抓取 17687 之前的所有内容,删除所有非逗号,然后计算字符数。
在脚本中使用它,您可能会执行以下操作:
So, you want the number of commas before the 17687? One way to do it is:
This grabs everything before the 17687, removes all the non-commas, and counts the number of characters.
Using this in a script, you might do something like:
如果您愿意,您还可以使用 tr 将字段分隔符更改为换行符,使用 grep 查找行和 cat。例如:
或更好
甚至
You can also use tr to change your field separator into a newline, grep to find the line and cat if you wish. For example:
or better
Or even
与仅使用一个正则表达式的 David 版本相比,有一点小小的改进。
Small improvement over David's version using only one regular expression.
珀尔?
对于您的示例,行将打印 26(从 1 开始计数)或“0”(如果未找到)。将搜索字符串的最后一个索引。
或者
将打印所有索引(从 0 开始计数)或什么也不打印...
Perl?
for your example line will print 26 (counted from 1) or "0" if not found. Will search for the last index of string.
or
will print all indexes (counted from 0) or nothing...
awk oneliner,单进程:
对于大文件,请使用闪电般快速的
mawk
(如果您的平台上可用)。Awk oneliner, single process:
For large files use the lightning fast
mawk
if available on your platform.