我有这个:
Issue #12345: some more text here https://some.domain/some/path
我想找到12345位(这是动态的,所以需要通过正则表达式),然后将它添加到同一行的末尾。就像这样:
Issue #12345: some more text here https://some.domain/some/path/12345
如何使用sed/awk实现这一目标?
PS:我已经看过了,但是唯一类似的问题是:将字符串的一部分替换为同一字符串的另一部分 ...but它缺少正则表达式。
我试图从两个来源列出目录。另一个目录中的条目可以在它们后面有-1或-2,我想去掉它们。
ls输出示例:
something.something.anything-1
stuff.stuff.stuff.morestuff-2
st.uf.f
我现在的代码是这样的:
echo -e "\tDATA\t\t | \t\tSYSTEM"
for SYSTEM in `ls /system/app`; do
for DATA in `ls /data/app | sed 's/-1*$//' | sed 's/-2*$//'`; do
我知道shell实际上没有数组,但我知道我可以使用一个值列表来完成这个任务:
dir_array=("quarantine" "720" "low" "high" "DVD" "error" "keep")
for d in "${dir_array[@]}"
do
…
done
我还知道可以使用-regex和-prune排除这些目录:
find -E . \
-type d -regex './(DVD|quarantine|720|high|low|er
我想用"5.6.10“的值替换这个变量
VERSION=5.4.38
如果我知道当前值(5.4.38),我知道该如何做。
sed s:VERSION=5.4.38:VERSION=5.6.10:g
但是我想用5.6.10的内容代替,即使我不知道这个值(对许多文件或脚本有用)。我试过这个
sed s:VERSION=[0-9].[0-9].[0-90-9]:VERSION=5.6.10:g
但结果很奇怪
VERSION=5.6.100
为什么10变成100?
我也试过
sed s:VERSION=[0-9].[0-9].[0-9]:VERSION=5.6.10:g
我也看到了同样的结果。