행의 특정 부분에서만 sed를 작동 시키려면 어떻게해야합니까? 그리고 반대로, 선의 특정 부분에서 sed가 작동하지 않게하려면 어떻게해야합니까?행 부분에서만 작동하는 방법
예 :
"A a A a (A a) A (a A) a"
내가 예를 들어, 얻을 T
의 으로 (
와 )
사이에만을 모든 A
의 대체 어떻게 :
"A a A a (T a) A (a T) a"
그리고 주어진 다음 예제 입력 :
"F f F f (F f) F (f F) f"
내가 예를 들어, 얻을 에
X
의하지만
(
와
)
사이
하지으로 모든
F
의 대체 어떻게
:
"X F X F (F의 F) X를 (F F) f "
Google을 검색했지만 사용할 수있는 것이 없습니다. 나는 sed에 관한 일반적인 질문이라고 생각합니다. 문제는 일반적인 sed "템플릿"으로 축소 될 수 있습니다.
- 를 보유하고 만
- 갖는 그들 사이보다 다른 곳에서도 작동하는 (특정 행의 모든 항목에) 그들 사이에 작동하는 ...
- 특별한 경우 경우 FROM과에 있습니다 동일한 (사이 "및"또는 "foo"와 "Foo"등) 모두 1, 2
그것은 어떤 동작뿐만 아니라 교체 작업뿐만 아니라, 원한다면, 인쇄 등으로한다 용 문자열의 "FOO"와 "BAR"사이의 모든 것을 인쇄합니다.
"1 2 3 BAR a b c FOO d e f BAR g a h FOO i j k BAR l m n FOO o p q"
결과는
" d e f i j k "
그래서, 그것을 수행하는 방법에 대한 일반적인 예는 높게 평가 될 것입니다 될 것입니다. 이 질문은 꽤 흔한 것 같지만, 아직 구글에서는 좋은 하우투가 발견되지 않았다. 나는 또한이 이 대답하기에 꽤 어려울 것이라고 생각합니다. 또한 Perl, AWK 또는 sed 이외의 것을 사용하여 하는 방법에 대한 힌트를 제공하지 마십시오. 이 질문은 정말로 sed-only 질문입니다.
최선을 다했습니다. 내 생각은 FROM 및 TO (여하튼)와 그 다음에 "어떻게 든"(나는 아직 어떻게 몰라서) 짝수 또는 홀수 부분에서만 또는 비슷하게 작동하도록 조각을 분할하는 것이 었습니다. 내가 그 일을하는 법을 알았다면 여기서 물어 보지 않았을 것입니다. 그리고, 분할에 대한 나의 아이디어가 잘못되었을 가능성이 높습니다. 그것은 꽤 어렵고 이전에는 sed를 간단한 작업에만 사용했습니다. – mjf