我想[1-9] \\ \hline
用[1-9] & \\ \hline
新的 & 符号替换该行的这一端。数据样本
The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000 4 \\ \hline
我的伪代码,我被困在其中,为 制作一个占位符,为 制作一些占位符,为制作[1-9]
一些占位符$1
$2
sed "s/[1-9] \\\\\\\\ \\\hline/*$/TODO/"
预期输出:
The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000 &4 \\ \hline
操作系统:Debian 8.5
答案1
您可以匹配一个或多个十进制数字,后跟可选的水平空格,然后&
在替换测试中使用以在文字与符号之后重新替换它\&
$ echo 'The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000 4 \\ \hline' |
sed 's/[0-9]\{1,\}[ \t]*\\\\/\&&/'
The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000 &4 \\ \hline
或者稍微更紧凑,使用扩展的正则表达式
$ echo 'The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000 4 \\ \hline' |
sed -E 's/[0-9]+\s*\\\\/\&&/'
The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000 &4 \\ \hline