NFIN=4
을 W=4N
으로 바꿔 파일의 문자열 일부를 대체하고 싶습니다. NFIN=4
의 숫자 부분에서 숫자는 임의의 int 또는 float 값이 될 수 있습니다. 입력이 NFIN=3.0
인 경우 출력은 W=3.0
이어야합니다. 음수가 없으며 3 또는 3.0입니다. 예를 들어, 입력 라인 :SED/AWK를 사용하여 문자열 바꾸기
XMPparasitic2 VDD:F86 VDD:F87 VDD:F88 VNW pch_lvt_mac L=8N NFIN=4 ODIND=5
출력이되어야 :
XMPparasitic2 VDD:F86 VDD:F87 VDD:F88 VNW pch_lvt_mac L=8N W=4N ODIND=5
을하면 돈 음의 지수를 갖는 음수가 의도된다는 것을 의미하지 않는다. –
sed -E -inplace 's/\ bNFIN = ([[: digit :]] +) \ b/W = \ 1N /'PREICG_X1M_AH360TL_C8_ARCH_3_4.lpeSpc – metalboy
이것은 숫자 매칭 정규 표현식을 훨씬 더 복잡하게 만듭니다. 기본은 동일합니다. NFIN 항목이 처음 (줄기 시작)이나 줄 끝 부분에 나타날 수 있습니까? 그것이 항상 라인의 중간에 있다면, 그것도 인생을 더 쉽게 만듭니다. 숫자가 항상 유효한 경우 (예를 들어, 변경해서는 안되는'NFIN = Aleph-Null'과 같은 항목이 없다면),'NFIN ='이후의 숫자라는 사실은 거의 중요하지 않게됩니다. regexes로 노는 것은 순수 예술이다; 당신은 너무 많이하거나 너무 적게하지 않고 원하는 것을 할 수있을 정도로 유연한 것을 원합니다. 귀하의 데이터를 아십시오! –