免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1042 | 回复: 6

[学习分享] 正则相关问题 [复制链接]

论坛徽章:
0
发表于 2016-02-26 15:55 |显示全部楼层
问题一、目录下有很多类似aaa_bbb_ccc.csv_20160226或aaa_bbb_ccc.trig_20160226的文件,现在要批量把扩展名后面的时间戳去掉?用awk的index函数怎么找到.后面第一个_的位置
问题而、目录下有类似aaa_bbb_???_ccc.csv的文件(??? 有类似hz,bj,tj等10几种情况,现在只找hz/bj/tj),用grep怎么过滤

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
发表于 2016-02-26 22:12 |显示全部楼层
本帖最后由 lyhabc 于 2016-02-26 22:14 编辑

问题1
#!/bin/bash
cd /tmp/

for name in $(ls /tmp/aaa_bbb_ccc.*)
do

        n=$(echo $name|awk -F '[0-9]' '{print $1}')
        mv $name $n
done

问题2
ll .|grep -E "aaa_bbb_(hz|bj|tj)_ccc.csv"
-rw-r--r-- 1 root root   4 Feb 26 22:11 aaa_bbb_bj_ccc.csv
-rw-r--r-- 1 root root   4 Feb 26 22:11 aaa_bbb_hz_ccc.csv
-rw-r--r-- 1 root root   4 Feb 26 22:11 aaa_bbb_tj_ccc.csv


ll
total 32
-rw-r--r-- 1 root root 124 Feb 26 22:09 1.txt
-rw-r--r-- 1 root root 146 Feb 26 22:09 11.sh
-rw-r--r-- 1 root root   4 Feb 26 22:11 aaa_bbb_bj_ccc.csv
-rw-r--r-- 1 root root   3 Feb 26 21:44 aaa_bbb_ccc.csv_
-rw-r--r-- 1 root root   4 Feb 26 21:45 aaa_bbb_ccc.trig_
-rw-r--r-- 1 root root   4 Feb 26 22:11 aaa_bbb_hz_ccc.csv
-rw-r--r-- 1 root root   4 Feb 26 22:12 aaa_bbb_lj_ccc.csv
-rw-r--r-- 1 root root   4 Feb 26 22:11 aaa_bbb_tj_ccc.csv

论坛徽章:
0
发表于 2016-02-29 11:02 |显示全部楼层
回复 2# lyhabc


    thanks
问题二已经解决了
问题一,因为.(点)前面也带有时间戳,而且时间戳的格式不固定,所以只能通过.后面第一个_(下划线)来截取
类似aaa_bbb_ccc_20160226.csv_20160226
aaa_bbb_ccc_02262015.csv_20160226
aaa_bbb_ccc_01_022615.trig_02262015
...

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
发表于 2016-02-29 17:27 |显示全部楼层
本帖最后由 lyhabc 于 2016-02-29 17:27 编辑

aaa_bbb_ccc_01_022615.*_02262015
特殊字符匹配特殊字符,应该不可能匹配  
tr命令
expr命令都试过了
你这个根本无关系,所有东西都可以变的

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
发表于 2016-02-29 17:39 |显示全部楼层
这样
#!/bin/bash
cd /tmp/

for name in $(ls /tmp/aaa_bbb_ccc_*)
do

n=$(echo $name|awk -F '(.*_)' '{print $2}')
nn=$(echo $name|sed "s/\(aaa\)\(.*\)\($n\)/\1\2/")
mv $name $nn

done

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
发表于 2016-02-29 17:40 |显示全部楼层
ll
total 64304
drwxr-xr-x  2 root root      4096 Feb 11 11:44 123
-rw-r--r--  1 root root        30 Feb 23 16:58 1.txt
-rw-r--r--  1 root root       510 Feb 23 09:53 2.txt
-rw-r--r--  1 root root        77 Feb 23 09:53 3.txt
-rw-r--r--  1 root root         3 Feb 29 16:54 aaa_bbb_ccc_01_022615.trig_

论坛徽章:
0
发表于 2016-03-01 00:03 |显示全部楼层
不错,顶一下了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP