Linux에서는 5행 앞에 다음 행을 추가한다고 가정합니다(따라서 5행은 6행이 됩니다).그리고"도구"를 통해 sed
출력의 모든 줄에 번호를 매기고 싶습니다.=
sed -n '5\Insert this line before line nuber 29' FILE
질문: =
이 구조에서 전체 출력의 라인 번호는 어디에 있습니까?
nl
wait 는 알지만 자체적으로 이를 위한 도구가 내장되어 cat --number
있으므로 도구 상자를 사용하는 것이 좋을 것입니다.sed
고쳐 쓰다:결과는 다음과 같아야 합니다. 각 행에는 숫자가 있고, 위의 행은 다섯 번째 행의 위치에 압착됩니다.
1 A line
2 Another line
3 as abovr
4 again
5 Insert this line before line nuber 29
6 This originally was line number 5
7 nearing the end
8 last line
답변1
다음을 사용하면 =
줄 번호가 인쇄되고 새 줄에 줄이 표시됩니다.
~$ sed '=' myfile
1
a
2
b
3
c
4
d
5
e
6
f
7
g
8
h
두 개의 sed 호출을 사용하는 경우 동일한 줄에 인쇄할 수 있습니다.
~$ sed '=' myfile | sed '{N;s/\n/ /}'
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
다음을 사용하여 줄을 다시 삽입할 수도 있습니다 i \
.
$ sed '5 i\
before 5
' myfile | sed '=' | sed '{N;s/\n/ /}'
1 a
2 b
3 c
4 d
5 before 5
6 e
7 f
8 g
9 h