gpt4 book ai didi

linux - tr "[1-9]" "[' 0 1'-' 0 9']"无法正常工作

转载 作者:IT王子 更新时间:2023-10-29 00:49:45 26 4
gpt4 key购买 nike

我试图只从 ls -lrth | 中删除日期部分grep TRACK 输出:

-rw-r--r-- 1 ins ins   0 Dec  3 00:00 TRACK_1_20121203_01010014.LOG
-rw-r--r-- 1 ins ins 0 Dec 3 00:00 TRACK_0_20121203_01010014.LOG
-rw-r--r-- 1 ins ins 0 Dec 13 15:10 TRACK_9_20121213_01010014.LOG
-rw-r--r-- 1 ins ins 0 Dec 13 15:10 TRACK_8_20121213_01010014.LOG

但是,这样做:

ls -lrth | grep TRACK | tr "\t" " " | cut -d" " -f 9                 

只给出两位数的日期和一位数的空格:

13
13

所以我尝试使用 tr 命令,将所有一位数日期转换为两位数:

ls -lrth | grep TRACK | tr "\t" " " | tr "[1-9]" "['01'-'09']" |  cut -d" " -f 9

但它给出了一些奇怪的结果,显然不符合我的目的。关于如何获得正确输出的任何想法?

最佳答案

不要解析 ls 输出。

ls 是一个交互式查看文件信息的工具。它的输出是为人类格式化的,会导致脚本中的错误。请改用 globsfind。明白为什么:http://mywiki.wooledge.org/ParsingLs

我推荐这种方式:

如果你想要日期和文件路径:

find . -name 'TRACK*' -printf '%a %p\n'

如果你只想要日期:

find . -name 'TRACK*' -printf '%a\n'

关于linux - tr "[1-9]" "[' 0 1'-' 0 9']"无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13900589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com