この行末を新しいアンパサンド[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
1 つ以上の 10 進数とオプションの水平スペースを一致させ、置換テストで&
リテラルと記号の後に再置換するために使用できます。\&
$ 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