약 25개의 열이 포함된 CSV 파일이 있습니다. 파일에는 26개의 열이 포함된 행이 있으므로 해당 추가 열이 포함된 행을 검색하고 제거하여 전체 파일에서 awk를 사용할 수 있도록 하고 싶습니다.
필드는 다음 구분 기호로 구분됩니다.;세미콜론. 추가 열의 형식은 다음과 같습니다.VARNAME="여기에 텍스트를 입력하세요""text is here" 값은 임의의 텍스트입니다.
삭제에 성공했어요변수 이름모든 행에서 임의의 값(인용 텍스트)과 일치하는 패턴을 탐색할 수 없습니다.
내 목표는 추가 열(VARNAME="여기에 텍스트를 입력하세요") 삭제하세요.
예:
현재 파일:
ROW1: VAR1:"Value 1";VAR2="Value 2";VAR3="Value 3"
ROW2: VAR1:"Value 4";VAR2="Value 5";VAREXT="Different Values";VAR3="Value 6"
대상 파일은 다음과 같아야 합니다.
ROW1: VAR1:"Value 1";VAR2="Value 2";VAR3="Value 3"
ROW2: VAR1:"Value 4";VAR2="Value 5";VAR3="Value 6"
답변1
다음과 같은 것을 사용할 수 있습니다.
sed 's/;VAREXT.[^;]*//' file #combine with -i for in-place editing
시험:
a=$'"ROW2: VAR1:"Value 4";VAR2="Value 5";VAREXT="Different Values";VAR3="Value 6"'
b=$'"ROW2: VAR1:"Value 4";VAR2="Value 5";VAREXT="1234567";VAR3="Value 6"'
c=$'"ROW2: VAR1:"Value 4";VAR2="Value 5";VAREXT="VAREXT";VAR3="Value 6"'
echo "$a" |sed 's/;VAREXT.[^;]*//'
echo "$b" |sed 's/;VAREXT.[^;]*//'
echo "$c" |sed 's/;VAREXT.[^;]*//'
"ROW2: VAR1:"Value 4";VAR2="Value 5";VAR3="Value 6"
"ROW2: VAR1:"Value 4";VAR2="Value 5";VAR3="Value 6"
"ROW2: VAR1:"Value 4";VAR2="Value 5";VAR3="Value 6"
답변2
CSV에 헤더가 없고 세미콜론 뒤에 공백이 없으며 VAREXT...
한 줄에 하나만 있을 것으로 예상한 다음 예제에 대해 다음을 시도하십시오.
sed 's/;VAREXT=\"[A-Za-z0-9 ]*\"//' in.csv
의 가치는 어디에 있습니까?주파수 변환문자, 숫자, 공백을 조합하여 사용할 수 있습니다.