tab space 用 sed 或 tr 替换为“-”
tab space replace with "-" with sed or tr
这是我的文件:
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" space。
我只是把第一组和第二组与 "space minus space (" - ") 之间。
谢谢!
如果您有更多像
这样的艺术家
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
这是我的文件: 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" space。 我只是把第一组和第二组与 "space minus space (" - ") 之间。 谢谢!
如果您有更多像
这样的艺术家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