GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak přesunout všechny zdrojové soubory Java do jejich příslušného adresáře balíčku?

Jsem v linuxu nový a moc toho o linuxových příkazech nevím.

Můj scénář je takový, že mám v adresáři tolik zdrojových souborů java s různými
názvy balíčků.

Chci přesunout všechny tyto zdrojové soubory java do jejich příslušného adresáře balíčku
.

V jakémkoli zdrojovém souboru java je na prvním řádku příkaz package, kterému může
nebo nemusí předcházet komentář.

Chci tedy napsat skript shellu, který analyzuje řádek balíčku pro
všechny soubory .java v aktuálním adresáři a poté přesune tento soubor java do
jeho příslušného adresáře balíčku.

Aktuální situace:

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

Co chci:

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

Příklad zdrojového souboru:

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

Přijatá odpověď:

#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. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  2. Jak efektivně přesunout všechny adresáře do jednoho adresáře ve stejné složce?

  3. Jak přesunout (a přepsat) všechny soubory z jednoho adresáře do druhého?

  1. Jak přesunout všechny soubory včetně skrytých souborů do nadřazeného adresáře přes *

  2. Jak odstranit všechny soubory v adresáři kromě některých?

  3. Jak najít všechny nulabajtové soubory v adresáři

  1. Jak přesunout všechny soubory (včetně skrytých) z jednoho adresáře do druhého?

  2. Jak odstranit všechny soubory s konkrétní příponou v konkrétní složce?

  3. Jak přesunout konkrétní soubory na základě jejich přípon?