我在变量中有这样的文件(比如说${var_file}
):
ABC+123+456+789+12'\r
DEF+987+98790+12+00'\r
GHI+12+12?+39+123498345+21+1'\r
ABC+485+2?'\r
ABC+34?+8kj+3949+1+sdfkj+sdfkj'\r
GHC+++sdf'\r
ABC+123++235+5435'\r
我还有一个变量$var1
,其中包含 INT 格式的数字并$var2
包含行首。
我需要一个 sed 命令(或 awk/cut?)或将成为 bash 脚本一部分的函数,它将替换文件中全局(所有可能的行)上行开始(例如或)上分隔符$var1
之间的位置。也有可能,因为是转义字符,所以在这种情况下不能用作分隔符,它是普通文本。行应始终足够长,以包含选定行开始的定义计数。+
$var2
ABC
ABC+123
?+
?
+
+
$var1
$var2
以( )开头的行中位置 3 ( $var1 = "3"
, 在 3rd 和 4th 之间)的输出示例+
ABC+123
$var2 = "ABC+123"
因此输出应该是:
ABC+123+456++12'\r
DEF+987+98790+12+00'\r
GHI+12+12?+39+123498345+21+1'\r
ABC+485+2?'\r
ABC+34?+8kj+3949+1+sdfkj+sdfkj'\r
GHC+++sdf'\r
ABC+123+++5435'\r
更改在第 1 行和第 7 行。
$var1 = "3"
如果仅删除以 ( )开头的行中的第三个位置 ( ABC
) $var2 = "ABC"
:
ABC+123+456++12'\r
DEF+987+98790+12+00'\r
GHI+12+12?+39+123498345+21+1'\r
ABC+485+2?'\r
ABC+34?+8kj+3949++sdfkj+sdfkj'\r
GHC+++sdf'\r
ABC+123+++5435'\r
更改位于第 1、5 和 7 行。
有人可以帮我弄这个吗?我尝试了各种 sed 命令,但我找不到解决方案..
谢谢!