Dieser Perl-Einzeiler zeigt die notwendigen Umbenennungen an:
perl -e 'open $f[$_-1], "file$_.txt" for 1,2; print "rename @n\n" while chomp(@n = map ''.<$_>, @f)'
Wenn dies für Sie funktioniert, ersetzen Sie den print
-Anweisung mit einer echten Umbenennung und Verwendung
perl -e 'open $f[$_-1], "file$_.txt" for 1,2; rename @n while chomp(@n = map ''.<$_>, @f)'
um die eigentliche Umbenennung vorzunehmen.
Sie können paste
verwenden um die Dateien nebeneinander zu formatieren:
$ paste -d" " file1.txt file2.txt
/etc/port1-192.9.200.1-255.555.255.0 /etc/port1-192.90.2.1-255.555.0.0
/etc/port2-192.9.200.1-255.555.255.0 /etc/port2-192.90.2.1-255.555.0.0
/etc/port3-192.9.200.1-255.555.255.0 /etc/port3-192.90.2.1-255.555.0.0
/etc/port4-192.9.200.1-255.555.255.0 /etc/port4-192.90.2.1-255.555.0.0
/etc/port5-192.9.200.1-255.555.255.0 /etc/port5-192.90.2.1-255.555.0.0
Beispiel:
$ paste -d" " file1.txt file2.txt | while read from to; do echo mv "${from}" "${to}"; done
mv /etc/port1-192.9.200.1-255.555.255.0 /etc/port1-192.90.2.1-255.555.0.0
mv /etc/port2-192.9.200.1-255.555.255.0 /etc/port2-192.90.2.1-255.555.0.0
mv /etc/port3-192.9.200.1-255.555.255.0 /etc/port3-192.90.2.1-255.555.0.0
mv /etc/port4-192.9.200.1-255.555.255.0 /etc/port4-192.90.2.1-255.555.0.0
mv /etc/port5-192.9.200.1-255.555.255.0 /etc/port5-192.90.2.1-255.555.0.0
Natürlich möchten Sie einige Sicherheitsüberprüfungen ([ -f "${from}" ]
, ...).
Haftungsausschluss:Funktioniert nur, wenn Ihre Dateinamen keine Leerzeichen enthalten.
paste -d " " file1.txt file2.txt
eignet sich hervorragend für diesen Job.
Falls Sie jedoch Textdateien in einer Windows-Umgebung verarbeiten und GNU-Paste verwenden, stellen Sie sicher, dass Sie die Dateien in das Unix-Format (CR) umwandeln und keine Dateien mit (CR-LF) verwenden.
GNU Paste scheint DOS-Formate nicht richtig zu handhaben und das Parsen ist unvorhersehbar. Die erwartete Ausgabe ist unberechenbar und unerwartet ohne Warnungen.
Sie können gVim verwenden, um sie einfach umzuwandeln (Menü Bearbeiten → Dateieinstellungen → Dateiformat ).