줄의 일부를 삭제하는 방법은 무엇입니까?

줄의 일부를 삭제하는 방법은 무엇입니까?

파일 세트에서 일부 줄을 삭제해야 합니다.

예시 라인:

TRN*1*301444/05-13-20*6549873211~

다음과 같아야 합니다(제거된 부분 /05-13-20).

TRN*1*301444*6549873211~

마지막 별표까지의 슬래시를 제거해야 하며 파일에 새 줄을 유지해야 합니다.

답변1

그리고 sed:

sed -n 's_/[^*]*__p'
  • /[^*]*/uto 부분을 다음으로 일치시킨 *다음 교체에 빈 문자열을 사용했기 때문에 null로 바꿉니다.

예:

% sed -n 's_/[^*]*__p' <<<'TRN*1*301444/05-13-20*6549873211~'
TRN*1*301444*6549873211~

답변2

정규식을 사용하여 이를 수행할 수 있습니다. 대부분의 언어로 제공되지만진주~이다정규식지도자. 정규식을 사용하여 원하는 작업을 수행하는 방법에는 여러 가지가 있지만 다음은 예입니다.

perl -pi -e 's/\/.*\*/*/g' file.txt

관련 정보