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

Wie verschiebe ich alle Java-Quelldateien in ihr jeweiliges Paketverzeichnis?

Ich bin Linux-Neuling und weiß nicht viel über Linux-Befehle.

Mein Szenario ist, dass ich so viele Java-Quelldateien mit unterschiedlichen
Paketnamen in einem Verzeichnis habe.

Ich möchte all diese Java-Quelldateien in ihr jeweiliges Paket
-Verzeichnis verschieben.

In jeder Java-Quelldatei ist die erste Zeile eine Paketanweisung, der
ein Kommentar vorangestellt sein kann oder nicht.

Ich möchte also ein Shell-Skript schreiben, das die Paketzeile für
alle .java-Dateien im aktuellen Verzeichnis analysiert und diese Java-Datei dann in
ihr jeweiliges Paketverzeichnis verschiebt.

Aktuelle Situation:

directory1
|- Class1.java (package : com.pkgA)
|- Class2.java (package : com.pkgB)
|- Class3.java (package : com.pkgC.subpkg)

Was ich will:

directory1
|- src
   |- com
      |- pkgA
         |- Class1.java
      |- pkgB
         |- Class2.java
      |- pkgC
         |- subpkg
            |- Class3.java

Beispielquelldatei:

//This is single line comment
/* This is multi line comment
 * Any of these style comment may or may not be present
 */

package com.pkgA;

public class Class1 {
    public static void main(String[] args) {
        System.out.println("Hello");    
    }
}

Akzeptierte Antwort:

#Loop through the java files
for f in *.java; do

    # Get the package name (com.pkgX)
    package=$(grep -m 1 -Po "(?<=^package )[^; ]*" "$f")

    # Replace . with / and add src/ at the beginning
    target_folder="src/${package//.//}"

    # Create the target folder
    mkdir -p "$target_folder"

    # move the file to the target folder
    mv "$f" "$target_folder"

done

Ubuntu
  1. Wie verschiebt man alle Dateien (einschließlich versteckter) von einem Verzeichnis in ein anderes?

  2. Wie lösche ich alle Dateien mit einer bestimmten Erweiterung in einem bestimmten Ordner?

  3. Wie verschiebt man bestimmte Dateien basierend auf ihren Erweiterungen?

  4. Wie bewegt man sich ein Verzeichnis nach unten?

  5. Wie verschiebt man alle Verzeichnisse effizient in ein einziges Verzeichnis im selben Ordner?

So installieren Sie Deb-Dateien (Pakete) auf Ubuntu

So erstellen Sie ein Ubuntu-Paket aus der Quelle

So finden Sie eine Datei in Linux rekursiv in allen Verzeichnissen

So verschieben Sie ein Verzeichnis unter Linux

Wie verschiebt man alle Dateien vom aktuellen Verzeichnis in das obere Verzeichnis?

Wie lösche ich alle Dateien in einem Verzeichnis außer einigen?