この行から数字41まで、数字41までのすべての文字を削除する方法
##SHUTDOWN_MAINT##41 * * * * /vend/oracle/util/bin
答え1
41
これが出力に含まれることを望むかどうかはわかりません。ここに2つのオプションセットがあります。
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
お役に立てば幸い
乾杯