이런 데이터가 있으면
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
또는 awk
GNU를 사용하십시오 gensub
:
awk '{ $2=gensub(/^item[45](,?)$/, "item3\\1", 1, $2) } 1' file