다음은 구문 분석 중인 CSV 파일의 행 pf 데이터 예입니다.
"Monday, July 3, 2023 at 9:12:34 PM GMT+0:00","Answer 1","Answer 2","Answer 3"
", 2023 at 9:12:34 PM GMT+0:00" 부분을 제거하려고 하므로 다음과 같습니다.
"Monday, July 3","Answer 1","Answer 2","Answer 3"
CSV 파일의 각 행에 대한 타임스탬프 데이터는 다른 값이므로 간단히 하드코딩할 수는 없습니다.
이 명령을 시도하면 파일에 아무 일도 일어나지 않습니다. 이유는 모르겠지만,
sed -i 's/, 2023[","]/","/g' example.csv
뭔가 단순한 것을 간과하고 있는 것 같은 느낌이 든다.
답변1
[","]
일치하다하나의"
또는 , 또는 와 ,
일치하는 문자입니다 "
.
당신은 일치하고 싶을 수도 있습니다주문하다문자가 아니며 "
null로 대체됩니다. 따라서 (항상 -i
먼저 테스트 하지 마십시오 )
sed -i 's/, 2023[^"]*//' example.csv
그러나 CSV 형식을 이해하는 도구 사용을 고려할 수도 있습니다. 예를 들면 다음과 같습니다.밀러
mlr --csv -N --quote-all put '$1 = sub($1,", 2023.*", "")' example.csv
답변2
사용sed
$ sed -i.bak 's/,[^,]*"/"/' input_file
"Monday, July 3","Answer 1","Answer 2","Answer 3"