파일의 첫 번째 줄에 호스트 이름을 추가하는 방법

파일의 첫 번째 줄에 호스트 이름을 추가하는 방법

여러 줄의 파일이 있습니다.

one
two
three
four
five

파일의 첫 번째 줄에 작업 중인 서버의 호스트 이름을 추가해야 합니다. 예를 들어 abcd555.india.com이 서버인 경우 출력 파일은 다음과 같아야 합니다.

abcd555.india.com
one
two
three
four
five

내 질문이 명확해지기를 바랍니다! 이 어려운 시기에 나를 도와주시는 모든 분들께 감사하겠습니다.

답변1

vi명령 사용

:0r !hostname

또는 더 긴 형식으로,

:0read !hostname

Esc물론 먼저 눌러야합니다.

read명령은 일반적으로 파일 이름을 가져와 해당 파일의 내용을 현재 줄 아래에 삽입하지만, !그 앞에 쉘 명령을 지정하면 해당 명령의 출력을 가져와서 삽입합니다.저것현재 줄 아래.

그러나 우리는 그것을 아무 곳에나 연결하고 싶지 않습니다. 우리는 그것을 삽입하고 싶습니다첫 번째철사. 이것이 바로 우리가 말하는 이유입니다 0r. 0은 명령 출력(또는 파일)이 배치될 줄 번호를 지정합니다.

답변2

이것을 사용할 수 있습니까 sed?

이는 GNU를 가정합니다 sed.

sed -i '1 i\'"$HOSTNAME" file

이것을 test1이라는 파일과 함께 사용하면 다음이 생성됩니다.

$ cat test1
one
two
three
four
five

그 다음에:

$ sed -i '1 i\'"$HOSTNAME" test1

다음으로 이어진다:

$ cat test1
chris-dell
one
two
three
four
five

답변3

프로그래밍 방식으로 이 작업을 수행하는 가장 쉬운 방법은 임시 파일에 쓴 다음 기존 파일을 덮어쓰는 것입니다.

{ hostname; cat somefile; } > somefile.tmp &&
  mv somefile.tmp somefile

답변4

태그를 지정했지만 viCLI 옵션을 찾고 있는 것 같습니다. 그 안에 있는 동안 위에 삽입을 vi사용하여 shift + O자동으로 새 행을 추가한 다음 행을 직접 붙여넣을 수 있습니다. 편집기를 사용하고 싶지 않다면 그렇게 할 수 있습니다 sed(GNU 구현을 가정).

sudo sed -i '1iabcd555.india.com' /etc/hosts

관련 정보