【问题标题】:awk or cut field with filename that has space具有空间的文件名的 awk 或剪切字段
【发布时间】:2016-08-26 09:49:59
【问题描述】:

从下面

-rw-r--r-- 1 user user 0 Aug 26 15:20 /home/user/public_html/this\ space.ext

我想提取最后一列。预期输出: /home/user/public_html/this\ space.ext

我对 cut 的尝试:

ls -lh  /home/user/public_html/this\ space.ext | cut -d ' ' -f9

输出:

/home/user/public_html/this\

我对 awk 的尝试: ls -lh /home/user/public_html/this\ space.ext | awk '{打印 $9}'

输出:

/home/user/public_html/this\

【问题讨论】:

  • Don't parse ls!你到底想达到什么目的?
  • Do not parse ls。相反,只需说ls -h,不要说l
  • @Err0rr,如果你仍然对解析ls命令的输出感兴趣,那么你可以试试cut -d ' ' -f 9-,意思是从第9个字段到最后一个跨度>
  • @Err0rr,你能澄清一下你的基本目标是什么吗?这个 Q 似乎是 两个 陷阱的一个例子 - 你是 ParsingLs 一个 XY Problem!一旦找到“具有特定扩展名和大小的文件”,您打算如何处理它?

标签: awk cut


【解决方案1】:

awk

$ echo "-rw-r--r-- 1 user user 0 Aug 26 15:20 /home/user/public_html/this\ space.ext" | 
  awk -F'[^\\\\] ' '{print $NF}'

/home/user/public_html/this\ space.ext

将分隔符定义为非反斜杠字符后的空格。

【讨论】:

    猜你喜欢
    • 2011-05-21
    • 1970-01-01
    • 2019-05-14
    • 2014-12-18
    • 2021-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    相关资源
    最近更新 更多