linux - 使用打印命令选择子域

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

最佳答案

使用您展示的示例,请尝试遵循 awk 代码。用 GNU awk 编写和测试应该可以在任何 awk 中使用。

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

https://stackoverflow.com/questions/71828930/

相关文章:

rust - 为什么使用盒装对象而不是特征对象?

python - 从列表中删除不重复的值

r - 与另一列中的变量相比,如何找到 R 列中两两变量之间的共同变量数?

python - 如何重构此代码片段以使其更高效?

c++ - 为什么移动 vector 不触发移动内部元素?

r - 如何创建一个虚拟变量对应于 R 中值的变化

r - 如何在数据帧的特定索引中插入行,其中仅在 R pipe dplyr 中包含上面几行的总和

awk - 如果模式存在于另一列中,则从该列中移除模式

c++ - const char * 数组中的元素数

r - 根据 R 中的出生年份对人员进行分组