我尝试使用 sed 命令删除所有行中第一个数字字符之前的所有文本,方法是使用以下命令
sed 's/.*[0-9]//' temp1.txt
但是,它会删除直到最后一个数字字符的所有文本。
答案1
这是由于 sed 的 eager 算法造成的。
使用:
sed 's/^[^0-9]*//' temp1.txt
在哪里
^
行首[^0-9]
除 0-9 之外的任何字符*
多次
我尝试使用 sed 命令删除所有行中第一个数字字符之前的所有文本,方法是使用以下命令
sed 's/.*[0-9]//' temp1.txt
但是,它会删除直到最后一个数字字符的所有文本。
这是由于 sed 的 eager 算法造成的。
使用:
sed 's/^[^0-9]*//' temp1.txt
在哪里
^
行首[^0-9]
除 0-9 之外的任何字符*
多次