如何将字符串的一部分提取到bashshell脚本中的变量中



我有一个eclipse.classpath文件,里面有很多行,比如

<classpathentry kind="lib" path="/somepath/somelibrary.jar"/>

我的意图是编写一个bash脚本,解析每一行以测试库是否存在。为了获得奖励,因为我知道我的机器上可能存在库的备用位置,如果在类路径文件指定的位置没有找到,我也会搜索备用位置,并在可能的情况下修复类路径文件。

我该怎么做?

似乎是如何通过shell脚本提取字符串的一部分?是相关的,但不确定如何将其转换为类似的格式

#!/bin/sh
while read f
do
if [ -f $f ]
then
echo "Found: $f"
else
echo "Missing: $f"
fi
done < $1

我认为这是我的目标。

sed -n 's/.*path="([^"]*)".*/1/p' file |
while IFS= read -r file
do
if [ -f "$f" ]
then
echo "Found: $f"
else
echo "Missing: $f"
fi
done

它不适用于包含换行符或双引号的文件名。如果您有任何一个,请告诉我们。

首先使用egrep从类路径文件中获取jar路径,然后对每个路径进行迭代。

for f in $(egrep -o '[/a-zA-Z0-9]+.jar' .classpath); do
if [ -f $f ]
then
echo "Found: $f"
else
echo "Missing: $f"
fi
done

相关内容

  • 没有找到相关文章

最新更新