GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Listen Sie alle Dateien auf, die mit .in enden und die mit .out mit Shell-Skript korrespondieren?

Ich habe ein Verzeichnis voller Dateien, die mit unterschiedlichen Erweiterungen enden. Wie würde ich nur die Dateien auflisten/auswählen, die mit .in enden und entsprechende .out die denselben Basisnamen haben?

z. B.

file1.txt
file1.in
file2.in
file3.in
file2.out
file3.out

Was ich aus diesen Dateien auswählen möchte, sind:

file2.in
file2.out
file3.in
file3.out

Akzeptierte Antwort:

Da wollen Sie .in mit .out gepaart werden , durchlaufen Sie nur *.in und prüfen Sie, ob es eine entsprechende .out gibt Datei, wenn ja, beides ausdrucken:

for f in *.in; do
  if [[ -f ${f%.in}.out ]]; then
    echo $f
    echo ${f%.in}.out
  fi
done

Linux
  1. Gemischtes Shell- und Python-Skript möglich?

  2. So führen Sie ein Shell-Skript beim Start aus

  3. Kopieren und überschreiben Sie eine Datei im Shell-Skript

  4. Shell-Skript ändert Verzeichnis mit Variable

  5. Zeile mit Shell-Skript an die Datei /etc/hosts anhängen

Herunterladen von Dateien mit Wget auf der Linux-Shell - Erklärung und Beispiele

So erfassen Sie Terminalsitzungen und geben sie mit dem Linux-Skriptbefehl aus

So arbeiten Sie mit File and Shell Provisioner in Vagrant

Kann eine .sh-Datei Malware sein?

Templating mit Linux in einem Shell-Skript?

Kann ein Shell-Skript darauf warten, dass sich eine Datei ändert, und Maßnahmen ergreifen?