GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment déplacer tous les fichiers source Java vers leur répertoire de packages respectif ?

Je suis nouveau sur Linux et je ne connais pas grand-chose aux commandes Linux.

Mon scénario est que j'ai tellement de fichiers source Java avec différents
noms de packages dans un répertoire.

Je souhaite déplacer tous ces fichiers source Java vers leur répertoire de package
respectif.

Dans tout fichier source Java, la première ligne est l'instruction package, qui peut
ou non être précédée d'un commentaire.

Donc, ce que je veux, c'est écrire un script shell qui analyse la ligne de package pour
tous les fichiers .java du répertoire courant, puis déplace ce fichier java dans
son répertoire de package respectif.

Situation actuelle :

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

Ce que je veux :

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

Exemple de fichier source :

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

Réponse acceptée :

#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. Comment déplacer tous les fichiers (y compris cachés) d'un répertoire à un autre ?

  2. Comment supprimer tous les fichiers avec une extension particulière dans un dossier particulier ?

  3. Comment déplacer des fichiers spécifiques en fonction de leurs extensions ?

  4. Comment descendre d'un répertoire ?

  5. Comment déplacer efficacement tous les répertoires dans un seul répertoire dans le même dossier ?

Comment installer des fichiers Deb (paquets) sur Ubuntu

Comment créer un paquet Ubuntu à partir de la source

Comment déplacer un répertoire sous Linux

Comment supprimer tous les fichiers d'un répertoire sauf certains ?

Comment trouver tous les fichiers de zéro octet dans le répertoire

Comment déplacer tous les fichiers et dossiers via la commande mv