awkを使用して2文字間のテキストを削除する方法

awkを使用して2文字間のテキストを削除する方法

この式で「<」と「>」の間のすべての項目を削除する方法を知りたいです。

i`<    1|   |    1>      -1.0000000000000

結果は次のとおりです。

i-1.00000000

awkを使ってみましたが、「>」の右側部分または部分の左側部分のみを削除できます。

awk -F '>' '{print $2}' 

ありがとう

答え1

パイプを介したデータ転送sed

... | sed -e 's/<.*>//'

正規表現は" <"、任意の数の文字、" >"の順に一致し、それを空の文字列" //"に置き換えます。

答え2

私は以下を使用しますsed

$ echo 'i<    1|   |    1>      -1.0000000000000' | sed 's/<[^-]*//'
i-1.0000000000000

答え3

一致の前後FSに正規表現を使用してフィールドを印刷できます。awk

echo 'i<    1|   |    1>      -1.0000000000000' | awk -F'<[^>]*> *' '{print $1 $2}'

答え4

echo 'i<    1|   |    1>      -1.0000000000000' |perl -pe 's/<.*>//;s/\s+/ /'

:)

関連情報