Miller/mlr의 DSL을 사용하여 문자열이 다른 문자열의 하위 문자열인지 확인

Miller/mlr의 DSL을 사용하여 문자열이 다른 문자열의 하위 문자열인지 확인

mlr의 DSL을 사용하여 CSV 열에 다른 열이 포함되어 있는지 확인하는 방법은 무엇입니까?

즉, CSV가 있습니다.

a,b
test and,test and more

(a)가 (b) 'test and'에 포함되어 있는지 알고 싶습니다 .'test and more'

답변1

노트: 좋은 댓글을 사용하기 위해 답글을 수정했습니다.@쿠살라난다


당신이 가지고 있다면

a,b
test*and,test*and more
lorem,ipsum
whether,Finding whether a string

넌 달릴 수 있어

mlr --csv put 'if($b != ssub($b,$a,"")){$test=1}else{$test=0}' input.csv

얻기 위해

두번째 시험
테스트* 및 테스트* 등 1
로렘 입숨 0
~에 관계없이 문자열인지 확인 1

나는 사용하고있다ssubb정규식이나 특수 문자 없이 문자열 대체가 있는지 확인하는 함수입니다 a.

if($b != ssub($b,$a,"")), 교체 후의 문자열이 b자신과 같지 않으면 a포함됩니다 b.

필터링하고 싶다면 다음을 실행할 수 있습니다.

mlr --csv filter '$b != ssub($b,$a,"")' input.csv

얻기 위해

두번째
테스트* 및 테스트* 등
~에 관계없이 문자열인지 확인

감사해요@쿠살라난다

관련 정보