我有一个文件目录结构如下:
src \
SortGreater \
SortGreater.java
SortGreater.class
SortLess \
SortLess.java
SortLess.class
字符串
我打算编写一个Linux命令,输出“src”目录中每个类的完全限定名(假设我在“src”目录中运行该命令)。例如,该命令应在此处输出“SortGreater.SortGreater”和“SortLess.SortLess”。我的第一次尝试是命令find -type f -name "*.java" -exec readlink -f {} \;
,但这被证明是错误的,因为它输出/path/to/directory/src/SortGreater/SortGreater.java
和/path/to/directory/src/SortLess/SortLess.java
有什么建议吗
3条答案
按热度按时间dw1jzc5e1#
查找所有
.class
(或.java
)文件,将斜线更改为点,修剪:字符串
hxzsmxv22#
让我们使用
find
的-exec
选项和一个bash
函数(to_qual
),该函数接受一个参数,删除尾随的.java
和前导的./
,用.
替换所有的/
,并打印结果。字符串
093gszye3#
bash
:字符串
输出量:
型
${i/\/*}
输出字符串i
删除/
和所有以下