GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come spostare tutti i file di origine Java nella rispettiva directory del pacchetto?

Sono nuovo di Linux e non so molto sui comandi di Linux.

Il mio scenario è che ho così tanti file sorgente java con diversi
nome del pacchetto in una directory.

Voglio spostare tutti questi file di origine java nella rispettiva directory del pacchetto
.

In qualsiasi file sorgente java, la prima riga è l'istruzione del pacchetto, che può
o meno essere preceduta da un commento.

Quindi quello che voglio è scrivere uno script di shell che analizzi la riga del pacchetto per
tutti i file .java nella directory corrente e quindi sposti quel file java nella
nella rispettiva directory del pacchetto.

Situazione attuale:

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

Cosa voglio:

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

Esempio di file sorgente:

//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");    
    }
}

Risposta accettata:

#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. Come spostare tutti i file (inclusi quelli nascosti) da una directory all'altra?

  2. Come eliminare tutti i file con un'estensione particolare in una cartella particolare?

  3. Come spostare tutte le directory in un'unica directory in modo efficiente nella stessa cartella?

  4. Come spostare (e sovrascrivere) tutti i file da una directory all'altra?

  5. Come modificare tutte le occorrenze di una parola in tutti i file in una directory

Come installare i file Deb (pacchetti) su Ubuntu

Come creare un pacchetto Ubuntu dal sorgente

Come spostare una directory in Linux

Come eliminare tutti i file in una directory tranne alcuni?

Come creare collegamenti simbolici a tutti i file (classe di file) in una directory?

Come spostare tutti i file e le cartelle tramite il comando mv