Ich habe diese Saite:shell - ersetzen String Wert erhöhen
"a | a | a | a | a | a | a | a"
und ich möchte jeden ersetzen | wie so mit einem Inkrementieren Wert "":
"a0a1a2a3a4a5a6a"
Ich kann weiß ich verwenden gsub in Strings zu ersetzen:
> echo "a | a | a | a | a | a | a | a" | awk '{gsub(/\ \|\ /, ++i)}1'
a1a1a1a1a1a1a1a
aber es scheint nur nach jedem newline erhöht gsub, so meine Lösung für jetzt würde zuerst puttin sein g ein Zeilenumbruch nach jedem "| “, Dann gsub verwenden und die Zeilenumbrüche zu löschen wieder:
> echo "a | a | a | a | a | a | a | a" | awk '{gsub(/\ \|\ /, " | \n")}1' | awk '{gsub(/\ \|\ /, ++i)}1' | tr -d '\n'
a1a2a3a4a5a6a7a
Welche ehrlich ist einfach ekelhaft ...
Gibt es einen besseren Weg, dies zu tun