다음은 예제 파일입니다.
somestuff...
all: thing otherthing
some other stuff
내가하고 싶은 것은 다음과 all:
같이 시작하는 줄에 추가하는 것입니다 .
somestuff...
all: thing otherthing anotherthing
some other stuff
답변:
이것은 나를 위해 작동합니다
sed '/^all:/ s/$/ anotherthing/' file
첫 번째 부분은 찾을 패턴이고 두 번째 부분은 $
줄 끝을 사용하는 일반 sed의 대체 입니다.
프로세스 중에 파일을 변경하려면 -i
옵션을 사용하십시오.
sed -i '/^all:/ s/$/ anotherthing/' file
또는 다른 파일로 리디렉션 할 수 있습니다.
sed '/^all:/ s/$/ anotherthing/' file > output
$0
조건과 일치하면 awk에 텍스트를 추가 할 수 있습니다 .
awk '/^all:/ {$0=$0" anotherthing"} 1' file
/patt/ {...}
선이에서 지정한 패턴과 일치하면에 patt
설명 된 작업을 수행합니다 {}
./^all:/ {$0=$0" anotherthing"}
줄이로 시작하면 (로 ^
표시됨) 줄에 all:
추가 anotherthing
합니다.1
참 조건으로 기본 동작을 트리거합니다 awk
: 현재 줄을 인쇄합니다 ( print $0
). 이것은 항상 발생하므로 원래 줄 또는 수정 된 줄을 인쇄합니다.주어진 입력에 대해 다음을 반환합니다.
somestuff...
all: thing otherthing anotherthing
some other stuff
변수에 추가 할 텍스트를 제공 할 수도 있습니다.
$ awk -v mytext=" EXTRA TEXT" '/^all:/ {$0=$0mytext} 1' file
somestuff...
all: thing otherthing EXTRA TEXT
some other stuff
awk: can't set $0
/usr/xpg4/bin/awk
"좋은"awk를 사용할 수 있습니다 .
awk 솔루션 :
awk '{if ($1 ~ /^all/) print $0, "anotherthing"; else print $0}' file
간단히 : 행이 all
print와 "anotherthing"으로 시작하면 행만 인쇄합니다.
awk '$1=="all:" {$(NF+1)="anotherthing"} 1'
condition {actions}
쌍 으로 구성 됩니다. 이 경우 condition
생략, 조치는 모든 레코드에 대해 수행된다. 이 경우 {actions}
생략하고 조건이 평가되는 사실 (수에 대한 경우이다 1
) 다음의 기본 동작은 현재 레코드를 인쇄하는 것입니다.