텍스트 파일의 두 번째 줄 시작 부분에 문자열을 추가하고 싶습니다. 예를 들면 다음과 같습니다.
1
2
3
다음과 같아야 합니다:
1
42
3
이 문제를 처리하는 방법에 대한 아이디어가 있습니까?
답변1
sed를 사용하여 이 작업을 수행할 수 있습니다. GNU sed가 있는 경우 -i
이를 사용하여 다음과 같이 수정할 수 있습니다.
sed -i -e '2s/^/4/' source
sed
이는 in-place( )를 수정 하고 line()의 시작 부분을 a와 일치시키기 위해 -i
정규식 replacement()를 수행하도록 지시하며 , 이 작업은 행 번호에서만 수행됩니다 . 이 모든 작업은 다음과 같은 파일에서 수행됩니다.s/^/4/
^
4
2
source
답변2
POSIX 하나:
printf '\n4' | paste -d'\0' - file
답변3
Ex 모드에서 Vim을 사용할 수 있습니다:
ex -sc '2s/^/4/|x' file
2
두 번째 행 선택s
바꾸다x
저장하고 닫습니다
답변4
강제 awk
솔루션:
awk -v prepend="<your-text-here>" 'NR==2{print prepend $0;next};1' file
또는 제안된 환경 변수 솔루션@cuonglm다음 의견:
prepend="<your-text-here>" awk 'NR==2{print ENVIRON["prepend"] $0;next};1' file
-v prepend=...
호출 시 변수에awk
지정된 값을 할당합니다prepend
.NR==2
두 번째 줄에 다음 명령을 적용합니다.print prepend $0
next
이 줄에 추가하기 전에 다음 줄로 이동하는 것을 잊지 마세요 .- 마지막은 전체 줄을 인쇄하는
1
단축키입니다 .{print $0}