문자열과 숫자가 포함 된 CSV 파일 (예 : temp.csv)이 있습니다. 파일의 줄 시작 부분에 특정 문자열 패턴이 포함 된 줄을 삭제해야합니다. 예를 들어 다음은 내 파일입니다.
req1,incl_patt1,excl_patt1,2,ind1
req1,incl_patt2,excl_patt2,1,ind1
req1,incl_patt3,excl_patt3,4,ind1
req2,inc_patt1,exc_patt1,1,ind2
req2,inc_patt2,exc_patt2,2,ind2
req2,inc_patt3,exc_patt3,3,ind2
req3,pattern3,expatt3,1,ind3
req4,pattern4,expatt4,1,ind4
req_file_curr
명령에 패턴을 쓰고 있습니다.~ $ req_file_curr=req1
echo "${req_file_curr}"
출력을 다음과 같이 제공합니다. req1
그러나 sed
아래와 같이 명령 에서 사용할 때 :
sed '/\"${req_file_curr}\"/d' temp.csv
출력을 다음과 같이 제공합니다.
req1,incl_patt1,excl_patt1,2,ind1
req1,incl_patt2,excl_patt2,1,ind1
req1,incl_patt3,excl_patt3,4,ind1
req2,inc_patt1,exc_patt1,1,ind2
req2,inc_patt2,exc_patt2,2,ind2
req2,inc_patt3,exc_patt3,3,ind2
req3,pattern3,expatt3,1,ind3
req4,pattern4,expatt4,1,ind4
나는 출력을 다음과 같이 expeceting하고 있습니다.
req2,inc_patt1,exc_patt1,1,ind2
req2,inc_patt2,exc_patt2,2,ind2
req2,inc_patt3,exc_patt3,3,ind2
req3,pattern3,expatt3,1,ind3
req4,pattern4,expatt4,1,ind4
sed
또는 에서 찾을 패턴으로 쉘의 변수를 어떻게 사용할 수 awk
있습니까?
당신은 묶어야합니다 sed
쉘에 전달하기 전에 변수를 확장 할 수 있도록 큰 따옴표 패턴 sed
:
sed "/^${req_file}/d" temp.csv
또한 이 패턴이 줄의 시작 부분에서 발생해야 ^
함을 나타 내기 위해 앵커 를 사용해야합니다 sed
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다