sed는 이 줄의 끝을 어떻게 대체합니까?

sed는 이 줄의 끝을 어떻게 대체합니까?

이 줄 끝을 새로운 앰퍼샌드 [1-9] \\ \hline로 바꾸고 싶습니다 . [1-9] & \\ \hline데이터 샘플

The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  4 \\ \hline

내가 갇힌 내 의사코드는 다음에 대한 자리 표시자를 만들고, 몇 가지 자리 표시자를 만들고, [1-9]몇 가지 자리 표시자를 만듭니다.$1$2

sed "s/[1-9] \\\\\\\\ \\\hline/*$/TODO/"

예상 출력:

The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  &4 \\ \hline

운영 체제: 데비안 8.5

답변1

하나 이상의 십진수와 선택적 수평 공백을 일치시킨 다음 &교체 테스트에서 리터럴 및 기호 다음에 다시 교체하는 데 사용할 수 있습니다.\&

$ echo 'The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  4 \\ \hline' |
   sed 's/[0-9]\{1,\}[ \t]*\\\\/\&&/'
The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  &4 \\ \hline

또는 약간 더 간결하게 확장된 정규 표현식을 사용하세요.

$ echo 'The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  4 \\ \hline' |
   sed -E 's/[0-9]+\s*\\\\/\&&/'        
The lorem ... & 1-2 & 3-4 & 5-6 & 6000 & 10000  &4 \\ \hline

관련 정보