파일의 특정 줄 끝에 텍스트를 추가하는 방법은 무엇입니까?

파일의 특정 줄 끝에 텍스트를 추가하는 방법은 무엇입니까?

32행에서 파일 끝에 사용자 이름을 추가해야 하는 경우 어떻게 해야 합니까?

줄의 시작 부분에 텍스트를 추가하는 방법을 Google에서 찾을 수 있지만 sed끝이나 중간(가능한 경우)에 추가하는 방법을 알 수 없습니다.

답변1

다음과 같이 줄 끝( $)을 텍스트로 바꿀 수 있습니다.

sed -e '32s/$/your_text/' file

줄 중간에 텍스트를 삽입하려면 줄 구조에 대한 일부 정보가 유용합니다.

답변2

노력하다:

sed  '32s,$,SOMETHING TO ADD,' FILE

답변3

사용 awk:

awk -v username='some username' -v line=32 'NR == line { $0 = $0 username } 1' file

줄 중간에 사용자 이름을 삽입하려면 파일의 줄 모양에 대해 더 많이 알아야 합니다.

사용자 이름과 행이 변수인 경우:

awk -v username="$username" -v line="$line" 'NR == line { $0 = $0 username } 1' file

사용자 이름 앞에 공백을 삽입하려면:

awk -v username="$username" -v line="$line" 'NR == line { $0 = $0 " " username } 1' file

답변4

사용 ed:

$ seq 100 > 100file
$ username=jeff
$ ed -s 100file <<< $'32s/$/'"$username"$'/\nw\nq'
$ sed -n 28,34p 100file
28
29
30
31
32jeff
33
34

후행 문자열을 바꾸면 /기본 인쇄 동작이 억제됩니다.

관련 정보