"
파일의 모든 항목을 다음이나 쉼표( )로 시작하거나 줄의 시작 부분에 있지 않는 한 다음으로 바꾸고 싶습니다.^"
"
,
즉-
"InvoiceA","Doe,John",12/01/2016,200,"Comment on Invoice: "Customer X purchased item Z from store C named "Abc" on "03/04/2016""
-로 변환해야 합니다.
"InvoiceA","Doe,John",12/01/2016,200,"Comment on Invoice: ^"Customer X purchased item Z from store C named ^"ABC^" on ^"03/04/2016^""
답변1
나는 당신이 (귀하의 예에서와 같이) 줄 끝의 따옴표 문자를 변경하지 않고 그대로 두기를 원한다고 가정합니다. 당신은 이것을 할 수 있습니다
sed 's/\([^,]\)"\([^,]\)/\1^"\2/g'
그러면 다음과 같이 세 개의 연속 문자로 구성된 문자열이 검색됩니다.
- 쉼표( ) 이외의 문자
,
, - 큰따옴표(
"
) 및 - 쉼표 이외의 문자,
그리고 그것들을 다음으로 대체하십시오.
- 첫 번째 역할,
^"
, 그리고- 세 번째 역할.
예를 들어 여러 개의 연속된 따옴표 문자에는 작동하지 않습니다.
…200,"Purchase at store named "" on Tuesday"
추신: 귀하의 예에 불균형한 인용문이 있다는 것을 알고 계십니까?
"Comment on Invoice: "Customer X purchased item Z from store C named "Abc" on "03/04/2016""
↑ ↑ ↑ ↑ ↑