[중복] 열에서 정확한 문자열 검색

[중복] 열에서 정확한 문자열 검색

단어가 줄에서 ","로 구분되어 있고 각 줄에 동일한 수의 단어(예: 4)가 있는 파일이 있습니다. 따라서 그들의 형태는 다음과 같습니다:

something1,something2,something3,something4

네 번째 열에 포함된 행을 정확하게 검색하고 싶은데 something4, 다음과 같은 행이 또 있으면 어떻게 해야 합니까?

something1,something2,something3,1_something4

grep을 사용하면 이 두 행을 얻을 수 있지만 네 번째 요소의 행만 원합니다. something4어떻게 해야 합니까?

답변1

다음을 위해 사용할 수 있습니다 awk:

awk -F, '$4 == "something4"' file.csv

네 번째 열이 있는 행의 전체 행을 인쇄해야 합니다.something4


변수를 전달하려면 awk다음을 수행해야 합니다.

var1=$(echo "something,something4" | cut -f2 -d,)
awk -F, -vsearch="$var1" '$4 == search' file.csv

답변2

아니면, 컬럼이 4개밖에 없고 마지막 컬럼에 구체적인 내용을 제공하고 싶으시다면,

grep ',something4$' < input

(grep을 사용해도 괜찮다면 게시하세요.좋은 해결책입니다).

답변3

cut일반적으로 이런 종류의 문제에 대해서는 필요한 열만 가져오면 됩니다 grep.

echo something1,something2,something3,something4 | cut -d , -f 4 | grep '^something4$'

관련 정보