Assuming that screen width (-W option) is even, try the following
diff --expand-tabs -W 100 -y hpc.sorted.new.list bduc.sorted.new.list | awk -v W=100 '(substr($0,W/2,1)=="|") 1'
Dies hat die gute Hälfte meines Tages gebracht und ich bin sicher, dass es eine solche Lösung geben muss (wenn nicht, dann programmiere ich eine), aber leider ist hier die Frage.
Ich habe zwei Dateien hpc.sorted.modules.txt
und bduc.sorted.modules.txt
. Was ich erreichen möchte, ist ein Vergleich der beiden Dateien nebeneinander, wobei alle Änderungen, die sich in keiner der Dateien befinden, in der leeren Spalte stehen. Ich möchte nicht diff
an die gleiche Zeile anhängen >
<
oder |
wenn sie nicht übereinstimmen.
Beispielausgabe: http://pastebin.com/raw.php?i=sr20gyWz using
diff -y -W 100 hpc.sorted.new.list bduc.sorted.new.list
Um den Punkt weiter zu betonen, wenn Sie sich das Beispiel ansehen, die Zeile:
bfast/0.7.0a | bedtools/2.6.1
sollte nicht existieren Sie sollten sich vielmehr in separaten Zeilen mit einer leeren Zeile in der linken oder rechten Spalte befinden.
Assuming that screen width (-W option) is even, try the following
diff --expand-tabs -W 100 -y hpc.sorted.new.list bduc.sorted.new.list | awk -v W=100 '(substr($0,W/2,1)=="|") 1'
format="%-50s | %-50s\n" comm --output-delimiter=: hpc.sorted.modules.txt bduc.sorted.modules.txt | while IFS= read -r line; do case $line in ::*) line=$; printf "$format" "$line" "$line" ;; :*) line=$; printf "$format" "" "$line" ;; *) printf "$format" "$line" "" ;; esac done
Adjust format to suit.