1

私の出力は次のようになります。

foo-1_2_3_4_5_bar
foo-6_7_8_9_0_1_2_bar

次の出力を得るために、末尾の文字を削除するにはどうすればよいですか。

foo-1
foo-6

私は試しました:

awk 'sub("..........$", "")

しかし、文字列の長さが異なる可能性があるため、これは非常に不便です。

4

2 に答える 2

2
sed 's/_.*//'

テスト:

kent$  echo "foo-1_2_3_4_5_bar
foo-6_7_8_9_0_1_2_bar"|sed 's/_.*//'
foo-1
foo-6

awk ワンライナーを追加します。

awk -F_ '$0=$1'

同じ入力、同じ出力:

kent$  echo "foo-1_2_3_4_5_bar
foo-6_7_8_9_0_1_2_bar"|awk -F_ '$0=$1'
foo-1
foo-6
于 2013-04-03T15:11:50.567 に答える