我在一个包含多行的变量中获得了两个字符串之间的内容。我想检查每一行是否以数字开头,如果是,我将增加一个计数器,并且在该数字之后和下一个数字之前还需要字符串。假设我有一个变量 $line ,其中包含:
1. Create
create a volume.
2. destroy
destroy a volume.
等等。我想计算 var1 中的 10 个操作,var2 中的数字后的字符串和 var3 中的创建、销毁(依此类推)后的文本。如何在 shell 脚本中处理。提前致谢
添加代码:
line=$(sed -n '/Description/,/properties/p' readme.txt)
echo "$line"
sed -n -e '/^[0-9]/{s/\([0-9]*\).*/\1/;h;n;s/^ *//;H;x;s/\n/ /p;d;}' <<< "$line"
operations=0
while read -r n str ;
do
let operations+=1
printf '%d, %d, %s\n' "$operations" "$n" "$str"
done < <(sed -n -e '/^[0-9]/{s/\([0-9]*\).*/\1/;h;n;s/^ *//;H;x;s/\n/ /;p;d;}' <<<"$line")
printf "Opertions = %d\n' "$operations"
done
其中 $line 包含 Description 和我必须执行所需操作的属性之间的内容。