2

2 つの数字の間に文字を挿入したい:foo bar 12 34になるfoo bar 12/34.

だから私は2つの数字の間にあるスペースを一致させ、それをスラッシュで置き換えるようなものが欲しいのですsedが、それを行う方法がわかりません.

私はこれまでのところ、数字スペースの両方をスラッシュsed -e 's/[1-9][0-9] [1-9][0-9]/\//'で置き換えることを知っています。2 つの数字の間にある行のスペースを見つける必要がありますが、スペースを置き換えるだけです。多分私はそれを見つける必要がありますが、最終的に印刷するには行全体が必要です。grep

何か案は?

4

3 に答える 3

5

自明awk:

echo 'foo bar 12 34' | awk '{print $1,$2,$3"/"$4}'

区切り記号で区切る列を識別し、区切り記号を間に入れます。

1 つの行にさまざまな数のフィールドがある場合は、ループを使用して次のフィールドと結合するフィールドを特定します。

于 2013-07-01T02:09:51.530 に答える
1

どうですか:

sed 's|\([0-9]\) \([1-9]\)|\1\/\2|'
于 2013-07-01T02:09:03.663 に答える
0

ほら、次の正規表現をテストしました。

echo "foo bar 12 23" | sed -e 's/\(.*\)\([1-9][0-9]\)\(.\)\([1-9][0-9]\)/\1\2\/\4/'
于 2013-07-01T02:03:21.863 に答える