item4와 item5를 item3으로 교체

item4와 item5를 item3으로 교체

이런 데이터가 있으면

1 item1,
2 item2,
3 item3,
4 item4,
5 item5

item4와 item5를 item3으로 바꾸고 싶습니다.

이것 말고도 또 있나요?

awk -F ' ' '{gsub("item4","item3",$2);gsub("item5","item3",$2); print}' OFS=" " file

답변1

그것은<input sed -r 's/item[45]/item3/' >output

당신은 할 것

1 item1,
2 item2,
3 item3,
4 item3,
5 item3

아직 가지고 있다면 item48기다려 item522주세요.

그것은

<input sed -E 's/^([0-9]{1,} +)item[45](,?)$/\1item3\3/' >output

답변2

행 을 포함하거나 포함하지 않고 일치시키 item44려면 값( 예 :item51,?$아보루소의 sed해결책):

awk '$2 ~ /^item[45],?$/{ gsub(/item[45]/, "item3", $2) } 1' file

또는 awkGNU를 사용하십시오 gensub:

awk '{ $2=gensub(/^item[45](,?)$/, "item3\\1", 1, $2) } 1' file

관련 정보