GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Cara Memindahkan Semua File Sumber Java Ke Direktori Paket Masing-masing?

Saya baru mengenal linux dan tidak tahu banyak tentang perintah linux.

Skenario saya adalah, saya memiliki begitu banyak file sumber java dengan
nama paket yang berbeda dalam sebuah direktori.

Saya ingin memindahkan semua file sumber java ini ke direktori masing-masing paket
.

Dalam file sumber java, baris pertama adalah pernyataan paket, yang boleh
didahului dengan komentar.

Jadi yang saya inginkan adalah menulis skrip shell yang mengurai baris paket untuk
semua file .java di direktori saat ini dan kemudian pindahkan file java itu ke
direktori paket masing-masing.

Situasi saat ini:

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

Yang saya inginkan:

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

Contoh file sumber:

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

Jawaban yang Diterima:

#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. Bagaimana Cara Memindahkan File Tertentu Berdasarkan Ekstensinya?

  2. Bagaimana Cara Memindahkan Satu Direktori ke Bawah?

  3. Bagaimana cara menggunakan perintah 'mv' untuk memindahkan file kecuali yang ada di direktori tertentu?

  1. Bagaimana mengubah semua kemunculan kata di semua file dalam direktori

  2. Bagaimana cara memindahkan semua file dari direktori saat ini ke direktori atas?

  3. Bagaimana cara chown/chmod semua file di direktori saat ini?

  1. Cara Menemukan File Di Linux Di Semua Direktori Secara Rekursif

  2. Bagaimana Memindahkan Semua File (termasuk Tersembunyi) Dari Satu Direktori Ke Yang Lain?

  3. Cara memindahkan semua file dan folder melalui perintah mv