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
후행 문자열을 바꾸면 /
기본 인쇄 동작이 억제됩니다.