如何在bash中仅提取文件名的特定部分

我有以下文件列表:

lab-1:/tmp/tmp.NMFaDO# ls                                                                                              
webserver.123.net.1970-01-01.csv          webserver.123.net.2016-10-01.csv          webserver.123.net.2017-10-01.csv                
webserver.123.net.2015-11-01.csv          webserver.123.net.2016-11-01.csv          webserver.123.net.2017-11-01.csv                
webserver.123.net.2015-12-01.csv          webserver.123.net.2016-12-01.csv          webserver.123.net.2017-12-01.csv                
webserver.123.net.2016-01-01.csv          webserver.123.net.2017-01-01.csv          webserver.123.net.2018-01-01.csv                
webserver.123.net.2016-02-01.csv          webserver.123.net.2017-02-01.csv          webserver.123.net.2018-02-01.csv                
webserver.123.net.2016-03-01.csv          webserver.123.net.2017-03-01.csv          webserver.123.net.current.csv                   
webserver.123.net.2016-04-01.csv          webserver.123.net.2017-04-01.csv          webserver.123.net.db.done                       
webserver.123.net.2016-05-01.csv          webserver.123.net.2017-05-01.csv          webserver.123.net.records_to_delete.txt         
webserver.123.net.2016-06-01.csv          webserver.123.net.2017-06-01.csv          sip2.ci2.lab.jwm2.net.2018-02-01.csv               
webserver.123.net.2016-07-01.csv          webserver.123.net.2017-07-01.csv          sip2.ci2.lab.jwm2.net.db.done                      
webserver.123.net.2016-08-01.csv          webserver.123.net.2017-08-01.csv          sip2.ci2.lab.jwm2.net.records_to_delete.txt        
webserver.123.net.2016-09-01.csv          webserver.123.net.2017-09-01.csv                                                             

在bash脚本中,我需要遍历此列表并仅提取文件名的日期部分。我设法弄清楚了如何
使用此命令包含文件文件夹内部执行此操作:

lab-1:/tmp/tmp.NMFaDO# ls webserver.123.net*.csv | sed 's/webserver.123.net.\(.*\)\.csv/\1/'                     
1970-01-01                                                                                                                                   
2015-11-01                                                                                                                                   
2015-12-01                                                                                                                                   
2016-01-01                                                                                                                                   
2016-02-01                                                                                                                                   
2016-03-01                                                                                                                                   
2016-04-01                                                                                                                                   
2016-05-01                                                                                                                                   
2016-06-01                                                                                                                                   
2016-07-01                                                                                                                                   
2016-08-01                                                                                                                                   
2016-09-01                                                                                                                                   
2016-10-01                                                                                                                                   
2016-11-01                                                                                                                                   
2016-12-01                                                                                                                                   
2017-01-01                                                                                                                                   
2017-02-01                                                                                                                                   
2017-03-01                                                                                                                                   
2017-04-01                                                                                                                                   
2017-05-01                                                                                                                                   
2017-06-01                                                                                                                                   
2017-07-01                                                                                                                                   
2017-08-01                                                                                                                                   
2017-09-01                                                                                                                         
2017-10-01                    
2017-11-01                   
2017-12-01               
2018-01-01              
2018-02-01  
current

但是我似乎无法在bash脚本中使用逻辑:

dir=/tmp/tmp.NMFaDO
server=webserver.123.net
for csvfile in $dir/$server.*.csv
do 
  echo $csvfile | sed 's/$dir\/$server.\(.*\)\.csv/\1/'
done

目前,它正在打印出名称的完整路径,如下所示:

/tmp/tmp.NMFaDO/webserver.123.net.1970-01-01.csv
/tmp/tmp.NMFaDO/webserver.123.net.2015-11-01.csv

ETC。

有人可以告诉我我的bash脚本中缺少什么吗?谢谢。

吉尔·奎诺(Gilles Quenot)

请注意您使用的引号:

dir=/tmp/tmp.NMFaDO
server=webserver.123.net
for csvfile in $dir/$server.*.csv
do 
  echo "$csvfile" | sed "s|$dir/$server.\(.*\)\.csv|\1|"
done

“双引号”包含空格/元字符,每字面每一个扩展:"$var""$(command "$var")""${array[@]}""a & b"使用'single quotes'代码或文字$'s: 'Costs $5 US'ssh host 'echo "$HOSTNAME"'参见
http://mywiki.wooledge.org/
行情http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Bash中获取文件名的通配符部分

来自分类Dev

如何在 for 循环中(在 python 中)从 word 文档的文件名中提取特定名称?

来自分类Dev

bash 提示:如何在 PS1 中仅显示文件名?

来自分类Dev

如何在bash中递归替换文件名的一部分

来自分类Dev

如何在Java中提取CSV文件的文件名的一部分

来自分类Dev

如何在Java中提取CSV文件的文件名的一部分

来自分类Dev

如何在bash中引用glob扩展文件名?

来自分类Dev

如何在bash脚本中验证文件名?

来自分类Dev

如何从日志文件中获取最后一行并仅提取文件名?

来自分类Dev

如何从特定文件夹中提取文件,文件名存储在python列表中?

来自分类Dev

从文件名路径列表中仅提取maya文件中使用的纹理文件名

来自分类Dev

Windows批处理脚本:如何从ftype命令输出中仅提取文件名

来自分类Dev

提取文件名部分以解决文件名冲突

来自分类Dev

如何在GNU Makefile中仅获取不带扩展名的文件名?

来自分类Dev

如何使用正则表达式从bash中的文件名中仅选择数字

来自分类Dev

如何从文件名中提取特定元素?

来自分类Dev

如何在压缩文件中搜索文本并仅获取文件名

来自分类Dev

从Bash中的文件名中提取信息

来自分类Dev

从 Bash 中的路径中提取文件名

来自分类Dev

在bash中获取文件名的数字部分

来自分类Dev

Bash:如何在文件夹中打印第n个文件的文件名

来自分类Dev

Bash:如何在文件夹中打印第n个文件的文件名

来自分类Dev

如何在Unix / Linux Shell脚本中提取一部分文件名

来自分类Dev

如何从xml文件中仅提取特定部分并将其合并?

来自分类Dev

如何在bash终端中从%f获取不带扩展名的文件名?

来自分类Dev

如何在bash中检索文件名或扩展名

来自分类Dev

如何在bash终端中从%f获取不带扩展名的文件名?

来自分类Dev

如何在SSIS变量中存储“完全限定”和“仅名称”文件名

来自分类Dev

如何在 JavaFX TreeView 中仅显示文件名?

Related 相关文章

  1. 1

    如何在Bash中获取文件名的通配符部分

  2. 2

    如何在 for 循环中(在 python 中)从 word 文档的文件名中提取特定名称?

  3. 3

    bash 提示:如何在 PS1 中仅显示文件名?

  4. 4

    如何在bash中递归替换文件名的一部分

  5. 5

    如何在Java中提取CSV文件的文件名的一部分

  6. 6

    如何在Java中提取CSV文件的文件名的一部分

  7. 7

    如何在bash中引用glob扩展文件名?

  8. 8

    如何在bash脚本中验证文件名?

  9. 9

    如何从日志文件中获取最后一行并仅提取文件名?

  10. 10

    如何从特定文件夹中提取文件,文件名存储在python列表中?

  11. 11

    从文件名路径列表中仅提取maya文件中使用的纹理文件名

  12. 12

    Windows批处理脚本:如何从ftype命令输出中仅提取文件名

  13. 13

    提取文件名部分以解决文件名冲突

  14. 14

    如何在GNU Makefile中仅获取不带扩展名的文件名?

  15. 15

    如何使用正则表达式从bash中的文件名中仅选择数字

  16. 16

    如何从文件名中提取特定元素?

  17. 17

    如何在压缩文件中搜索文本并仅获取文件名

  18. 18

    从Bash中的文件名中提取信息

  19. 19

    从 Bash 中的路径中提取文件名

  20. 20

    在bash中获取文件名的数字部分

  21. 21

    Bash:如何在文件夹中打印第n个文件的文件名

  22. 22

    Bash:如何在文件夹中打印第n个文件的文件名

  23. 23

    如何在Unix / Linux Shell脚本中提取一部分文件名

  24. 24

    如何从xml文件中仅提取特定部分并将其合并?

  25. 25

    如何在bash终端中从%f获取不带扩展名的文件名?

  26. 26

    如何在bash中检索文件名或扩展名

  27. 27

    如何在bash终端中从%f获取不带扩展名的文件名?

  28. 28

    如何在SSIS变量中存储“完全限定”和“仅名称”文件名

  29. 29

    如何在 JavaFX TreeView 中仅显示文件名?

热门标签

归档