如何解决如何在Linux上使用sed从文件名获取值?
| 如何从以下文件名中分别检索每个部分? DSA4020_frontcover_20346501_2011-05.doc 我想检索以下信息; 名称= DSA4020 类型=封面 id = 20346501 日期= 2011-05 sed有可能吗?解决方法
是的你可以:
pax$ echo \'DSA4020_frontcover_20346501_2011-05.doc\' | sed
-e \'s/^/name=/\'
-e \'s/_/\\ntype=/\'
-e \'s/_/\\nid=/\'
-e \'s/_/\\ndate=/\'
-e \'s/\\..*//\'
name=DSA4020
type=frontcover
id=20346501
date=2011-05
这全都在一行中,为了便于阅读,我将其拆分了。
如果您愿意,也可以用ѭ1do进行:
pax$ echo \'DSA4020_frontcover_20346501_2011-05.doc\'
| awk -F_ \'{print \"name=\"$1\"\\ntype=\"$2\"\\nid=\"$3\"\\ndate=\"substr($4,1,7)}\'
name=DSA4020
type=frontcover
id=20346501
date=2011-05
,awk
可能是一个更好的选择
# f=DSA4020_frontcover_20346501_2011-05.doc
# name=$(echo $f | awk -F_ \'{print $1}\')
# echo $name
DSA4020
# type=$(echo $f | awk -F_ \'{print $2}\')
# echo $type
frontcover
,用纯扑
FILE=\"DSA4020_frontcover_20346501_2011-05.doc\"
eval $(echo $FILE |(IFS=\"_\";read a b c d; echo \"name=$a;type=$b;id=$c;date=${d%.doc}\"))
echo Name:$name Type:$type ID:$id DATE:$date
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。