Mit bash
, wie kann ich den folgenden Inhalt einer Datei umwandeln:Bash-Datei vor Zeichenfolge basierend auf der Anzahl erstellen
1 apple
3 orange
2 cow
in eine andere Datei, die lautet:
apple
orange
orange
orange
cow
cow
Mit bash
, wie kann ich den folgenden Inhalt einer Datei umwandeln:Bash-Datei vor Zeichenfolge basierend auf der Anzahl erstellen
1 apple
3 orange
2 cow
in eine andere Datei, die lautet:
apple
orange
orange
orange
cow
cow
Entdecken AWK
Sprache:
$1
, $2
sind die 1. und 2. Feld jeweilsDer Ausgang:
apple
orange
orange
orange
cow
cow
Einfache Lösung nicht awk
mit:
while read -r count item; do
for((i=0; i<$count;i++)); do
echo "$item"
done
done <input_file> output_file
Or etwas ein wenig mehr exotisch:
while read -r count item; do
printf -- "$item\n%0.s" $(seq 1 $count)
done <input_file> output_file
andere minimalistisch awk
$ awk '{while($1--) print $2}' file
oder zum Spaß
$ while read c w; do yes $w | head -n $c; done <file
Jedes Wort in einem separaten Zeichenfolge in der neuen Datei gehen. – Alan
Haben Sie etwas versucht? Mit awk kannst du das ganz einfach machen. – codeforester
Sie können dies mit rein Bash (oder POSIX sh) tun, wenn dies eine Voraussetzung ist. Aber warum ... – ilkkachu