을 사용하고 -A
주변 선을 표시 할 수 있다는 것을 알고 있지만 둘 다 일치하는 선도 표시합니다. 이 예제 파일에서 내가 하고 싶은 일은 다음과 같습니다.-B
-C
foo
bar
나는 이런 일을 할 것이고 grep <option> "bar" file
내 결과는 다음과 같아야합니다
foo
사이드 노트grep
: 다른 사람과 함께 사용하거나 사용하는 방법을 알고 있지만 sed
한 번만 사용하고 싶습니다.grep
답변1
이것은 다음과 같은 사람들에게는 꽤 힘든 일입니다 sed
.
$ printf 'foo\nbar\n' | sed -n '$!N;/\nbar$/P;D'
foo
답변2
또 다른 솔루션
grep -B 1 "bar" test | head -n 1
추가 정규식 또는 일치 테스트가 필요하지 않아 더 효율적이라는 장점이 있지만 여러 일치 항목에서는 작동하지 않습니다.
답변3
또 다른 가능한 해결책:
grep -B 1 "bar" test | sed '/bar/d'
답변4
"bar"를 무시하는 또 다른 grep을 수행할 수 있습니다.
grep -B 1 "bar" test.txt | grep -v "bar"