![sed [duplicate]를 사용하여 파이프 "|"가 처음 나타날 때까지 제거](https://linux55.com/image/189866/sed%20%5Bduplicate%5D%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%B4%ED%94%84%20%22%7C%22%EA%B0%80%20%EC%B2%98%EC%9D%8C%20%EB%82%98%ED%83%80%EB%82%A0%20%EB%95%8C%EA%B9%8C%EC%A7%80%20%EC%A0%9C%EA%B1%B0.png)
다음 파이프 "|" 기호 앞의 모든 문자를 제거하고 싶습니다. 이전 질문의 제안 사항을 시도했지만 나에게 적합하지 않습니다. 예를 들어.
삭제하고 싶어요일련번호=123그러나 일련번호는 동적이므로 항상 123이 아닌 934294와 같을 수 있습니다. "s/|sequence=123//g" 또는 "s/|sequence=...//g"를 사용하여 제거할 수 있지만 다음 파이프 "|" 앞의 모든 문자를 제거할 수 있기를 원합니다.
산출:
2021-03-22T12:00:51.990368-04:00 8.8.8.8 time=1616428842|action=Detect|ifdir=inbound|origin=8.8.8.8|originsicname=CN\=Internet,O\=test|sequencenum=123|dst=1.1.1.1|proto=6|s_port=2231|service=80|src=9.9.9.9|[email protected]|src_user_name=user|[email protected]|
원하는 출력:
2021-03-22T12:00:51.990368-04:00 8.8.8.8 time=1616428842|action=Detect|ifdir=inbound|origin=8.8.8.8|originsicname=CN\=Internet,O\=test|dst=1.1.1.1|proto=6|s_port=2231|service=80|src=9.9.9.9|[email protected]|src_user_name=user|[email protected]|
답변1
sed 's/|sequence=[^|]*//g'
|sequence=
0개 이상의 문자로 이루어진 시퀀스 의 모든 발생은 다음 문자, 문자가 아닌 문자 또는 줄의 끝 중 먼저 오는 문자 까지 |
(포함하지 않음) 제거됩니다 .|