cat a.txt

a.b.c.d.e.google.com
x.y.z.google.com
rev a.txt | awk -F. '{print $2,$3}' | rev

这表明:

e google
x google

但我想要这个输出

a.b.c.d.e.google
b.c.d.e.google
c.d.e.google
e.google
x.y.z.google
y.z.google
z.google

提前谢谢

推荐答案

有了所显示的示例,请try 以下awk个代码.用GNUawk编写和测试的应用程序应该适用于任何awk.

awk '
BEGIN{
  FS=OFS="."
}
{
  nf=NF
  for(i=1;i<(nf-1);i++){
    print
    $1=""
    sub(/^[[:space:]]*\./,"")
  }
}
' Input_file

Linux相关问答推荐

Linux x86_64上PIE ELF可执行文件的.Text段的基本虚拟地址

在shell 中使用排除模式的grep

X86 程序集 - struct 点 - 存储/返回不正确?

如何摆脱管道分隔字段中不需要的管道符号 - Linux

Linux PREEMPT_RT:SCHED_OTHER 的性能优于 SCHED_FIFO.为什么?

使用 awk 将多行文本转换为 CSV

$RANDOM 变量在输出通过管道后似乎没有改变

根据文件名对目录中的文件进行 chgrp

当 skylake 有 fsgsbase 时,为什么使用 __builtin_ia32_wrfsbase64 会收到非法指令?

为什么 printf 仍然可以使用低于 XMM 寄存器中 FP args 数量的 RAX?

普通用户 chown(仅更改组)

如何使用 __attribute__((visibility("default")))?

XML 编辑/查看软件

如何计算列的平均值

如何排除 tar 的绝对路径?

对一行的最后一个字段进行排序

如何下载较旧的 google play 服务?

如何分析内存使用情况?

从文本文件中删除奇数行或偶数行

在 Unix 上计算每行/字段的字符出现次数