如何删除这一行中直到数字 41 的所有字符,一直到数字 41
##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin
答案1
我不清楚您是否希望将其41
包含在输出中。因此这里有两组选项
1. 删除文本直至并包含41
如果您正在运行,bash
则可以使用内置变量处理
line='##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin'
printf "%s\n" "${line#*41}"
如果你能保证没有其他的41
就行了你可以用sed
line='##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin'
printf "%s\n" "$line" | sed 's/^.*41//'
如果你有 GNU,grep
你可以选择下面的所有内容41
line='##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin'
printf "%s\n" "$line" | grep -Po '(?<=41).*'
2. 删除 直到但不包括 的文本41
,使用##
作为标记
如果您正在运行,bash
则可以使用内置变量处理
line='##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin'
printf "%s\n" "${line#*?##}"
如果你能保证没有其他的##
就行了你可以用sed
line='##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin'
printf "%s\n" "$line" | sed 's/^..*##//'
如果你有 GNU,grep
你可以选择下面的所有内容##
line='##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin'
printf "%s\n" "$line" | grep -Po '(?<=.##).*'
答案2
您可以使用 sed 删除所有内容,直到第一个数字
echo '##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin' | sed 's/[^0-9]*//'
如果你想在文件中更改它,请使用
sed -i 's/[^0-9]*//' filename
希望有帮助
干杯