7
다음 순서 의 마지막 줄을 쉘 스크립트와 GNU 구현으로 바꾸고 싶다고 가정 해 봅시다 sed
.
$ seq 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1 단계 : 다음과 같이 시퀀스의 마지막 행 번호를 가져옵니다. 이것 과 저것을 보세요 :
$ lastLine=`seq 20|sed -n '$='`
$ echo $lastLine
20
2 단계 : 편집 할 줄 수 (시퀀스 끝에)를 설정합니다.
$ numberOfLines=7
$ echo $numberOfLines
7
3 단계 : 다음과 같이 이전 변수를 기반으로 시작 줄을 계산합니다. 이것 좀 봐 :
$ startLine=`expr $lastLine - $numberOfLines + 1`
$ echo $startLine
14
4 단계 : 이제 마지막 7 줄 시퀀스를 다음과 같이 다른 것으로 바꿀 수 있습니다. 이것 좀 봐 :
$ seq 20|sed -e "$startLine,+$numberOfLines{s/[12]/WoW/}"
1
2
3
4
5
6
7
8
9
10
11
12
13
WoW4
WoW5
WoW6
WoW7
WoW8
WoW9
WoW0
4 단계는 sed man page 의 섹션 4.4를 사용하고 있습니다 .
'ADDR1,+N'
Matches ADDR1 and the N lines following ADDR1.
4 단계에서도 여기에 언급 된대로 큰 따옴표 를 사용 합니다 .
다음 과 같이 Gohu 의 답변을 사용하면 4 단계가 필요하지 않습니다.
$ seq 20 |tac|sed -e '1,7{s/[12]/WoW/}'|tac
1
2
3
4
5
6
7
8
9
10
11
12
13
WoW4
WoW5
WoW6
WoW7
WoW8
WoW9
WoW0
sed '24,$s/,/:/g' filename
곳을24
시작 line`입니다