【发布时间】:2013-06-27 01:50:14
【问题描述】:
我有一个 Eclipse .classpath 文件,其中包含许多行,例如
<classpathentry kind="lib" path="/somepath/somelibrary.jar"/>
我的目的是编写一个 bash 脚本来解析每一行以测试该库是否存在。对于奖励积分,因为我知道我的机器上可能存在库的备用位置,如果在类路径文件指定的位置中找不到,我也会搜索备用位置并尽可能修复类路径文件。
我该怎么做?
似乎How can I extract part of a string via a shell script? 是相关的,但不确定如何将其转换为类似的格式
#!/bin/sh
while read f
do
if [ -f $f ]
then
echo "Found: $f"
else
echo "Missing: $f"
fi
done < $1
我认为这是我的目标。
【问题讨论】:
-
我可以推荐python、ruby、PHP...吗?
-
正如@KarolyHorvath 所提到的,使用python、ruby、php 和其他解决方案可能会更好。 Bash 可能不是解析 xml 的最理想方式。由于
.classpath恰好是xml 格式,您可能可以使用xpath。您可以尝试使用xpath -q -e classpath/classpathentry[@kind=\"lib\"]/@path <classpath_file> |cut -d '=' -f2|tr -d '"'或更好的东西来获取路径列表 -
说实话,我很乐意用任何语言来做这件事。我对完成这项工作所提到的任何人都不熟悉(或不够熟悉)。也许你可以为我所追求的任务提出一个解决方案......很高兴验证你的工作:) 我目前正在寻找 bash 版本,并将很快用我的脚本的当前状态更新这个问题。