【问题标题】:how to go to the certain column or part of the line using "sed" command?如何使用“sed”命令转到特定列或行的一部分?
【发布时间】:2014-06-17 04:42:12
【问题描述】:
Permissions   links  Owner  Group  Size   Date        Time    Directory or file
-rwxr--r--     1     User1  root    26    2012-04-12  19:51    MyFile.txt
drwxrwxr-x     3     User2  csstf  4096   2012-03-15  00:12     MyDir 

请注意,每个空格都是制表符空格。
我需要转到尺寸栏。我该如何使用sed 命令来做到这一点。因为我无法继续我的工作。我不知道如何使用sed 命令拆分和获取行的某些部分。

【问题讨论】:

  • 你可能不必使用 ls; GNU find 有一个 printf 选项,因此您可以按顺序打印出您想要的字段,这样可以更轻松地以您喜欢的任何方式进行解析。 :)
  • “转到尺码栏”是什么意思?您是在谈论光标定位,还是提取该列数据或其他内容?
  • @twalberg 例如,我需要为所有者获取具有执行权限的文件数。
  • @codeSlayer789 在我看来,信息将在“权限”列中,而不是“大小”列中。您的评论不会使您的问题更加清晰。考虑重新措辞,具体说明您想要什么,以及示例输入和输出,并向我们展示您的尝试。

标签: linux shell sed command


【解决方案1】:

awk 更适合:

awk -F'\t' '{print $5}' file

使用 sed:

sed -r 's/^([^\t]+\t){4}([^\t]+).*$/\2/' file
Size
26
4096

【讨论】:

  • 因为awk 的默认选项卡和空格应该足够了:awk '{print $5}' file
  • 如何使用sed @anubhava
  • -F 和拆分字符之间没有空格时,我在 Solaris 上遇到了问题。
  • @Jotne 我需要使用sed 来查找并显示最大大小为 3 的文件以及所有者具有执行权限的文件总数。
  • @codeSlayer789:提供了 sed 版本,但我的偏好是 awk
猜你喜欢
  • 2020-10-09
  • 2022-01-08
  • 2015-11-04
  • 2019-04-29
  • 2021-07-31
  • 2013-06-29
  • 2023-03-04
  • 2018-12-17
  • 2012-04-02
相关资源
最近更新 更多