用sed或tr将制表符替换为“ - ”。

3

这是我的文件: myfile.txt :

John Jony                                                   Old Boy
Maria                                                       Beautiful Girl
Dede YoYo                                                   Animal

使用以下命令:sed 's/ \+ /\ - /g' myfile.txt > ttt.txt
我有这个输出:

John Jony - Old Boy -
Maria - Beautiful Girl -
Dede YoYo - Animal -

但是我不想替换第二个“tab”空格。 我只需要用“空格减去空格(“ - ”)”来取第一组和第二组。 谢谢!

7
移除 g - 123
如果我有一个动态内容。我的意思是,有时我有3或4列带有名称,我想在最后一个和标题后面放置“ - ”?例如: John Jony Another Name Old Boy 我想要“John Jony&Another Name-Old Boy”谢谢! - Snowman
1个回答

1
如果你有更多像这样的艺术家,就像这个:

John Jony    Another Name    Old Boy  

想要这个输出:
John Jony & Another Name - Old Boy

如果涉及编程,那么情况会稍微复杂一些,但对于awk来说并非不可能:
输入文件:
John Jony    Another Name     Old Boy  
First artist    Second artist    Third artist    Song  
Maria             Beautiful Girl  
Dede YoYo         Animal  

命令:

awk -F '  +' '
NF==3 {
sub("  +"," - ");
print
}

NF>3 {
  for (i=1;i<=NF-3;i++) {
    printf("%s",$i);
    printf(" & ");
  }
  printf("%s - %s\n",$(i++),$i);
}' myfile.txt > ttt.txt

输出:

John Jony & Another Name - Old Boy
First artist & Second artist & Third artist - Song
Maria - Beautiful Girl  
Dede YoYo - Animal  

1
谁知道就知道了!像我这样的人只能学习,非常感谢他们并表示敬意 :-) 完美运作! 谢谢Mike! - Snowman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接