簡體   English   中英

如何使用sed命令以批處理方式更改Java包聲明

[英]How to use sed command to change java package declaration in batch way

以前,我的Java包聲明都以“ zn”開頭,例如“ package zn.tree”。 現在,在更改java文件夾路徑以刪除“ zn”文件夾之后,我還想更改所有java聲明以刪除前綴“ zn”。 分批地 例如,我想將“ package zn.tree”更改為“ package tree”。

因此,我決定使用bash腳本來更改所有Java文件。 谷歌搜索后,我編寫了一個腳本來使用“ sed”命令來完成這項工作。 但是,它不起作用並報告錯誤。 我仍然不熟悉'sed'中的正則表達式。 我的代碼如下所示:

#! /bin/bash
# change package declaration in batch way
for path in $(find $1 -type f -name "*.java"); do
        sed -i "" 's/\<zn/.\>//g' $path
done

希望有人能給我一些線索。 謝謝。

如果我理解您的問題,您可以使用一根襯紙來做,

find . -type f -name '*.java' -exec sed -i 's/^package zn\./package /1' {} \;

這將執行sed命令,並指示它在每個匹配文件上進行就地編輯。 請注意,我假設您要匹配以“ package zn”開頭的第一行。 並用“ package”替換一次。

使用諸如Eclipse,IntelliJ或Netbeans之類的IDE的重構功能將為您節省大量時間。 在IntelliJ中,您只需創建新程序包,然后將類從舊程序包拖放到新程序包即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM