外壳:如何从第二列剪切前 n 个字段

  • 本文关键字:二列 字段 外壳 bash shell
  • 更新时间 :
  • 英文 :


请帮助从如下所示的文件中删除第 2 列(分隔符空间(中的前 9 个字段。我尝试使用 cut & awk,但没有满足所需的输出。

我的输入文件

appu 11062017-10:00
ammu 11062017-11:00
anna 11062017-12:00

所需的输出..

appu 10:00
ammu 11:00
anna 12:00

请注意,字段11062017-(日期(将不同,但数字长度(9个字符(将相同。 请帮我执行命令。

使用 awk 和sub$2的前 9 个字符替换为空字符串:

$ awk '{sub(/.{9}/,"",$2)}1' file
appu 10:00
ammu 11:00
anna 12:00

根据@anubhava的评论。它可以通过带有 substr 的 awk 来实现。

awk -F  " " '{print $1,substr($2,10)}' my_input_file.txt

另一种awk解决方案

awk '{ split($2,arry,"-");print $1" "arry[2] }' filename

在这里,我们使用"-"分隔符来获取所需的数据

尝试使用

sed -i 's/ .*-/ /g' file

sed删除空格sed之间的所有字符

另一种方式[[:digit:]]{8}-

's/([[:digit:]]{8}-)//' filename
  • 正则表达式CC_7将匹配 8 位数字,后跟一个连字符。

最新更新