grep을 사용하여 한 행의 단어를 제외하는 방법에 대한 조언이 필요합니까?Grep 또는 egrep을 사용하여 행의 텍스트를 제외하십시오.
grep -v '1.942134' results.tbl | egrep '*.fits' results.tbl
확장 .fits 모든 문자열을 표시하지만 "1.942134"문장에서 제외하려고하지만 여전히 전체 라인을 반환
는 그래서 노력했다.
어떤 조언이 필요합니까?
grep을 사용하여 한 행의 단어를 제외하는 방법에 대한 조언이 필요합니까?Grep 또는 egrep을 사용하여 행의 텍스트를 제외하십시오.
grep -v '1.942134' results.tbl | egrep '*.fits' results.tbl
확장 .fits 모든 문자열을 표시하지만 "1.942134"문장에서 제외하려고하지만 여전히 전체 라인을 반환
는 그래서 노력했다.
어떤 조언이 필요합니까?
sed으로 연결해야합니다. Sed는 많은 능력을 가지고 있으며, 그 중 일부는 다른 것보다 더 복잡합니다. 그러나 가장 좋은 것 중 하나는 정규 표현식 대체입니다.
grep '\.fits$' | sed 's/1.942134//'
grep 패턴이 너무 일치합니다. '. *'에 대한 이유가 없기 때문에''\ .fits ''를 추가하지 않아도됩니다 (".fits"로 시작하는 줄이 일치하지 않는 한). OP는 또한 eol 앵커를 나타내지 않았다. 아마도 sed에 단어 경계를 추가하여 단어를 일치시킬 수도 있습니다. –
'.fits '가'$'줄 끝 부분에있을 것이라고 어떻게 확신합니까? OP는 그것에 대해 아무 말도하지 않습니다. – Jotne
또는 당신은 당신이 모두 sed
및 awk
에서 .
을 탈출해야한다 그렇지 않으면 그냥 모든 문자를 의미합니다 awk
awk '/\.fits/ && !/1\.942134/` results.tbl
PS를 사용할 수 있습니다.
'grep'과 같이 간단해야합니다 .fits 'results.tbl | grep -v '1.942134'. 파이프는 입력이 이전 명령의 출력이기 때문에 파일을 다시 제공 할 필요가 없다는 것을 의미합니다. – fedorqui