마지막 n 줄을 추출하고 sed 단일 줄을 사용하여 앞에 문자를 추가합니다.

마지막 n 줄을 추출하고 sed 단일 줄을 사용하여 앞에 문자를 추가합니다.

다음 문서를 고려해보세요:

1
2
3
4
5

이것을 사용하여 마지막 3개 행을 추출할 수 있습니다.sed하나의 선:

$ /bin/sed input.txt -e ':a;$q;N;4,$D;ba'

#그러나 출력이 다음과 같이 보이도록 각 줄 앞에 문자( )를 추가하고 싶습니다 .

# 3
# 4
# 5

이를 위해 한 줄의 코드를 수정하려면 어떻게 해야 합니까? 즉, 다른 sed호출을 추가할 필요가 없습니다(사용 | /bin/sed -e 's/^/# /').

나는 sed같은 이유로만 사용하는 것을 선호합니다.원래 질문, 즉 내 시스템에는 사용 가능한 바이너리가 제한되어 있습니다.

답변1

sed마지막 것을 인쇄하는 대신 사용하십시오.N회선 사용량 tail:

$ tail -3 input.txt | sed 's/^/# /'
# 3
# 4
# 5

cat또한 이 파일은 필요하지 않습니다 .고양이에게 쓸모없는 용도.

다음만 사용하세요 sed:

sed ':a;${s/^/# /;s/\n/&# /g;q;};N;4,$D;ba' input.txt

관련 정보