12개의 공백을 삽입해야 합니다. 특정 문자열과 일치해야 하며 12개의 공백이 있는 다음 줄로 이동해야 합니다.

12개의 공백을 삽입해야 합니다. 특정 문자열과 일치해야 하며 12개의 공백이 있는 다음 줄로 이동해야 합니다.

space.txt라는 파일이 있습니다. 나는 ath2와 문자열 일치를 수행하고 있습니다. 12개의 공백 뒤에 문자열 "newdata"를 삽입해야 합니다. 작동하는 아래 명령을 시도했지만 수동 흰색 12 공백을 사용했습니다. 다른 방법으로 어떻게 달성할 수 있나요?

sed -e "/ath2/a\            newdata" space.txt

이런 출력이 필요합니다

unix@BDC8-LX-CVZ52X2:~/12space$ cat space
ath1
ath2
            newdata
ath3
ath4
ath5

답변1

printf다음을 사용하여 공간을 생성 할 수 있습니다 .

sed -e '/ath2/a\'"$(printf %012s)"'newdata' "space.txt"

답변2

이것이 당신이 원하는 것입니까?

sed "/ath2/a$(printf '\%12s')newdata" space

관련 정보