用bash脚本批量提取文本中的某一段
-
- 帖子: 213
- 注册时间: 2009-07-13 16:23
用bash脚本批量提取文本中的某一段
我的文本格式如下:2981|AF-399/42016521|55|sd|3113|dock2|1
我想用bash脚本批量提取第一个|**-***/********|之间的内容,第一个| 前可能有1-4为数不定。
如何实现,请帮忙。
我想用bash脚本批量提取第一个|**-***/********|之间的内容,第一个| 前可能有1-4为数不定。
如何实现,请帮忙。
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- trigger
- 帖子: 1604
- 注册时间: 2006-10-25 18:08
Re: 用bash脚本批量提取文本中的某一段
echo "2981|AF-399/42016521|55|sd|3113|dock2|1" | cut -f 2 -d"|"
AF-399/42016521
这样?
AF-399/42016521
这样?
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
-
- 帖子: 213
- 注册时间: 2009-07-13 16:23
Re: 用bash脚本批量提取文本中的某一段
实在看不懂。最好通俗点eexpress 写了:[0-9]{1,4}\|..-...\/[0-9]{,8}\|
乱写的。没管转义。
自己看正则嘛
-
- 帖子: 213
- 注册时间: 2009-07-13 16:23
Re: 用bash脚本批量提取文本中的某一段
不是。一堆类似于这样的数据位于一文本文件中,我想提取中间的这个,并保存到另一个文本文件中。trigger 写了:echo "2981|AF-399/42016521|55|sd|3113|dock2|1" | cut -f 2 -d"|"
AF-399/42016521
这样?
比如:
97|AG-690/36723012|55|sd|99|dock5|1
967|AG-690/10495031|55|sd|1008|dock1|1
923|AG-690/11663228|55|sd|959|dock4|1
921|AG-690/11821833|55|sd|957|dock6|1
920|AG-690/11821832|55|sd|956|dock6|1
883|AF-399/40684331|55|sd|918|dock1|1
870|AN-648/40682398|55|sd|903|dock2|1
87|AG-205/36698032|55|sd|89|dock6|1
865|AH-487/40687420|55|sd|898|dock6|1
83|AG-690/36682032|55|sd|85|dock3|1
818|AO-476/40672256|55|sd|850|dock2|1
817|AO-476/40672251|55|sd|849|dock3|1
812|AO-476/40672102|55|sd|844|dock4|1
800|AF-399/40654071|55|sd|832|dock5|1
799|AF-399/40654071|55|sd|831|dock3|1
787|AM-760/40633537|55|sd|819|dock1|1
786|AM-760/40633530|55|sd|818|dock3|1
785|AM-760/40633529|55|sd|817|dock5|1
780|AN-919/15529260|55|sd|812|dock7|1
70|AG-690/36609015|55|sd|72|dock9|1
684|AF-399/15599151|55|sd|712|dock6|1
683|AF-399/15599310|55|sd|711|dock7|1
634|AN-919/15527170|55|sd|661|dock3|1
630|AP-083/15505063|55|sd|657|dock5|1
624|AG-690/15437985|55|sd|651|dock5|1
623|AG-690/15437985|55|sd|650|dock2|1
622|AG-690/15437985|55|sd|649|dock3|1
620|AG-690/15430815|55|sd|647|dock5|1
619|AG-690/15430804|55|sd|646|dock9|1
617|AG-690/15430603|55|sd|644|dock7|1
614|AG-690/15428912|55|sd|641|dock2|1
6096|AO-476/43417659|55|sd|6094|dock10|1
6092|AG-205/36735034|55|sd|5901|dock10|1
6087|AK-968/15253711|55|sd|5742|dock10|1
6079|AP-786/42299994|55|sd|5469|dock10|1
6051|AN-655/14411031|55|sd|4820|dock10|1
6043|AN-919/13952016|55|sd|4721|dock10|1
600|AK-968/15361265|55|sd|626|dock3|1
5998|AF-399/42018988|55|sd|2983|dock10|1
5990|AN-698/41886086|55|sd|2825|dock10|1
5937|AG-670/40968127|55|sd|1676|dock10|1
5922|AG-690/40749482|55|sd|1361|dock10|1
5918|AG-690/40750626|55|sd|1262|dock10|1
5910|AG-690/08755042|55|sd|1053|dock10|1
5900|AF-399/40684111|55|sd|911|dock10|1
59|AG-205/36564027|55|sd|61|dock1|1
5891|AK-968/15361181|55|sd|621|dock10|1
5879|AK-968/11565101|55|sd|6084|dock7|1
5878|AK-968/11565006|55|sd|6083|dock3|1
5867|AN-465/43411466|55|sd|6072|dock4|1
5859|AN-465/43411112|55|sd|6064|dock4|1
5845|AO-365/43401146|55|sd|6049|dock3|1
5839|AP-970/43376388|55|sd|6042|dock8|1
5836|AP-970/43375104|55|sd|6039|dock1|1
5823|AP-970/14929033|55|sd|6026|dock1|1
5822|AP-853/43332208|55|sd|6025|dock2|1
5819|AM-879/40742705|55|sd|6022|dock6|1
5818|AO-365/43401145|55|sd|6021|dock5|1
5814|AK-778/43206254|55|sd|6017|dock3|1
5795|AJ-292/40930660|55|sd|5998|dock2|1
5787|AP-970/43028613|55|sd|5990|dock3|1
5762|AN-465/43384096|55|sd|5966|dock7|1
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: 用bash脚本批量提取文本中的某一段
代码: 全选
awk -F"|" '{print $2}' file > newfile
- trigger
- 帖子: 1604
- 注册时间: 2006-10-25 18:08
Re: 用bash脚本批量提取文本中的某一段
syfnet, 一样
$ cat cutbei.txt | cut -f 2 -d"|"
AG-690/36723012
AG-690/10495031
AG-690/11663228
AG-690/11821833
AG-690/11821832
AF-399/40684331
AN-648/40682398
AG-205/36698032
AH-487/40687420
AG-690/36682032
AO-476/40672256
AO-476/40672251
AO-476/40672102
AF-399/40654071
AF-399/40654071
AM-760/40633537
AM-760/40633530
AM-760/40633529
AN-919/15529260
AG-690/36609015
AF-399/15599151
AF-399/15599310
AN-919/15527170
AP-083/15505063
AG-690/15437985
AG-690/15437985
AG-690/15437985
AG-690/15430815
AG-690/15430804
AG-690/15430603
AG-690/15428912
AO-476/43417659
AG-205/36735034
AK-968/15253711
AP-786/42299994
AN-655/14411031
AN-919/13952016
AK-968/15361265
AF-399/42018988
AN-698/41886086
AG-670/40968127
AG-690/40749482
AG-690/40750626
AG-690/08755042
AF-399/40684111
AG-205/36564027
AK-968/15361181
AK-968/11565101
AK-968/11565006
AN-465/43411466
AN-465/43411112
AO-365/43401146
AP-970/43376388
AP-970/43375104
AP-970/14929033
AP-853/43332208
AM-879/40742705
AO-365/43401145
AK-778/43206254
AJ-292/40930660
AP-970/43028613
AN-465/43384096
$ cat cutbei.txt | cut -f 2 -d"|"
AG-690/36723012
AG-690/10495031
AG-690/11663228
AG-690/11821833
AG-690/11821832
AF-399/40684331
AN-648/40682398
AG-205/36698032
AH-487/40687420
AG-690/36682032
AO-476/40672256
AO-476/40672251
AO-476/40672102
AF-399/40654071
AF-399/40654071
AM-760/40633537
AM-760/40633530
AM-760/40633529
AN-919/15529260
AG-690/36609015
AF-399/15599151
AF-399/15599310
AN-919/15527170
AP-083/15505063
AG-690/15437985
AG-690/15437985
AG-690/15437985
AG-690/15430815
AG-690/15430804
AG-690/15430603
AG-690/15428912
AO-476/43417659
AG-205/36735034
AK-968/15253711
AP-786/42299994
AN-655/14411031
AN-919/13952016
AK-968/15361265
AF-399/42018988
AN-698/41886086
AG-670/40968127
AG-690/40749482
AG-690/40750626
AG-690/08755042
AF-399/40684111
AG-205/36564027
AK-968/15361181
AK-968/11565101
AK-968/11565006
AN-465/43411466
AN-465/43411112
AO-365/43401146
AP-970/43376388
AP-970/43375104
AP-970/14929033
AP-853/43332208
AM-879/40742705
AO-365/43401145
AK-778/43206254
AJ-292/40930660
AP-970/43028613
AN-465/43384096
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
-
- 帖子: 213
- 注册时间: 2009-07-13 16:23
Re: 用bash脚本批量提取文本中的某一段
成功,非常感谢。xiooli 写了:代码: 全选
awk -F"|" '{print $2}' file > newfile

-
- 帖子: 627
- 注册时间: 2008-11-08 18:34
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 213
- 注册时间: 2009-07-13 16:23
Re: 用bash脚本批量提取文本中的某一段
也好用。谢谢。
trigger 写了:syfnet, 一样
$ cat cutbei.txt | cut -f 2 -d"|"
AG-690/36723012
AG-690/10495031
AG-690/11663228
AG-690/11821833
AG-690/11821832
AF-399/40684331
AN-648/40682398
AG-205/36698032
AH-487/40687420
AG-690/36682032
AO-476/40672256
AO-476/40672251
AO-476/40672102
AF-399/40654071
AF-399/40654071
AM-760/40633537
AM-760/40633530
AM-760/40633529
AN-919/15529260
AG-690/36609015
AF-399/15599151
AF-399/15599310
AN-919/15527170
AP-083/15505063
AG-690/15437985
AG-690/15437985
AG-690/15437985
AG-690/15430815
AG-690/15430804
AG-690/15430603
AG-690/15428912
AO-476/43417659
AG-205/36735034
AK-968/15253711
AP-786/42299994
AN-655/14411031
AN-919/13952016
AK-968/15361265
AF-399/42018988
AN-698/41886086
AG-670/40968127
AG-690/40749482
AG-690/40750626
AG-690/08755042
AF-399/40684111
AG-205/36564027
AK-968/15361181
AK-968/11565101
AK-968/11565006
AN-465/43411466
AN-465/43411112
AO-365/43401146
AP-970/43376388
AP-970/43375104
AP-970/14929033
AP-853/43332208
AM-879/40742705
AO-365/43401145
AK-778/43206254
AJ-292/40930660
AP-970/43028613
AN-465/43384096
- trigger
- 帖子: 1604
- 注册时间: 2006-10-25 18:08
Re: 用bash脚本批量提取文本中的某一段
ee在笑话寡人思维简单eexpress 写了:awk的$2可以,那cut肯定更简单。
1楼的时候,罗嗦一堆,我的没看明白。还说一堆格式。
估计思维越简单的越懂。

楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
-
- 帖子: 8
- 注册时间: 2010-07-15 13:41
Re: 用bash脚本批量提取文本中的某一段
我是这样写得:
cat cutbei.txt | cut -d"|" -f 2
-d 和-f 谁先谁后应该没问题吧..?
对awk了解不够深,但是学习了
我是初学者,学习了linux两个月,以后各位多多指教
cat cutbei.txt | cut -d"|" -f 2
-d 和-f 谁先谁后应该没问题吧..?
对awk了解不够深,但是学习了
我是初学者,学习了linux两个月,以后各位多多指教