Meine Dateien aussehenWie Dateien Zeile für Zeile in bash
file0 file1 file2
a 1 ##
a 1 ##
b 2 @@
b 2 @@
und ich möchte verschmelzen diese Dateien Linien durch Linien zu verbinden, so dass es ich meine, wie
merged file
a
a
1
1
##
##
b
b
2
2
@@
@@
aussehen soll, wählen einige Zeilen für jede Datei und füge sie in eine Datei zusammen. Ich versuchte unter Bash-Skript.
touch ini.dat
n=2
linenum=$(wc -l < file0)
iter=$((linenum/n))
for i in $(seq 0 1 $iter)
do
for j in $(seq 0 1 2)
do
awk 'NR > '$(($i*$n))' && NR <= '$((($i+1)*$n))'' file"$j" > tmp
cat ini.dat tmp > tmpp
cp tmpp ini.dat
rm tmpp
done
done
Es funktioniert gut, aber dauert zu viel Zeit. Gibt es einen effizienten Weg?
siehe https://unix.stackexchange.com/questions/169716/why-is-using-a-shell-loop-to-process-text-considered-bad-practice zur Diskussion auf Shell-Schleifen verwenden, um Text zu verarbeiten – Sundeep
@Sundeep wahrscheinlich nicht verwandt. – Socowi
Haben alle Eingabedateien dieselbe Anzahl von Zeilen? – anubhava