단어가 줄에서 ","로 구분되어 있고 각 줄에 동일한 수의 단어(예: 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$'