[unix] 텍스트 파일을 만들고 bash를 사용하여 채우기

(이미 존재하지 않는 한) 텍스트 파일을 만들고 bash를 사용하여 파일에 새 줄을 작성해야합니다.

나는 그것이 간단하다고 확신하지만 누구든지 이것을 나에게 설명 할 수 있습니까?



답변

이것을 스크립트로 원하면 다음 Bash 스크립트가 원하는 작업을 수행해야합니다 (파일이 이미 존재하는 경우 알려줍니다).

#!/bin/bash
if [ -e $1 ]; then
  echo "File $1 already exists!"
else
  echo >> $1
fi

“이미 존재 함”메시지를 원하지 않는 경우 다음을 사용할 수 있습니다.

#!/bin/bash
if [ ! -e $1 ]; then
  echo >> $1
fi

사용에 대한 편집 :

원하는 이름으로 어떤 버전을 저장하든 “create_file”이라고 말하십시오 (내 말을 인용하면 파일 이름에 포함하고 싶지 않음). 그런 다음 파일을 실행 가능하게하려면 명령 프롬프트에서 다음을 수행하십시오.

chmod u+x create_file

경로의 디렉토리에 파일을 넣고 다음과 함께 사용하십시오.

create_file NAME_OF_NEW_FILE

$ 1은 명령 줄에서 프로그램 이름 다음의 첫 번째 인수를받는 특수 쉘 변수입니다. 즉, $ 1은 위의 사용 예에서 NAME_OF_NEW_FILE을 선택합니다.


답변

유닉스에서 텍스트 파일을 만드는 것은 텍스트 편집기 (vim, emacs, gedit 등)를 통해 할 수 있습니다. 하지만 당신이 원하는 것은 이런 것일 수 있습니다

echo "insert text here" > myfile.txt

그러면 ‘여기에 텍스트 삽입’이라는 텍스트가 myfile.txt 파일에 저장됩니다. 이것이 작동하는지 확인하려면 ‘cat’명령을 사용하십시오.

cat myfile.txt

파일에 추가하려면 다음을 사용하십시오.

echo "append this text" >> myfile.txt


답변

UNIX 쉘 명령을 의미한다고 가정하면 다음을 실행하십시오.

echo >> file.txt

echo개행을 인쇄하고 >>는 파일에 개행을 추가하도록 쉘에 지시하여 이미 존재하지 않는 경우 작성합니다.

하지만 질문에 제대로 답하려면 파일이 이미 존재하는 경우 어떤 일이 발생하고 싶은지 알아야합니다. 예를 들어 현재 내용을 새 줄로 바꾸려면 다음을 사용합니다.

echo > file.txt

편집 : Justin의 의견에 대한 응답으로 파일이 아직 존재하지 않은 경우에만 개행을 추가하려면 할 수 있습니다.

test -e file.txt || echo > file.txt

적어도 그것은 Bash에서 작동하지만 다른 셸에서도 작동하는지 확실하지 않습니다.


답변

#!/bin/bash
file_location=/home/test/$1.json
if [ -e $policy ]; then
  echo "File $1.json already exists!"
else
  cat > $file_location <<EOF
{
      "contact": {
          "name": "xyz",
          "phonenumber":   "xxx-xxx-xxxx"
      }
    }
EOF
fi

이 코드는 사용자의 지정된 JSON 파일이 테스트 홈 디렉토리에 있는지 여부를 확인합니다. 존재하지 않는 경우 콘텐츠로 생성됩니다. 필요에 따라 파일 위치와 내용을 수정할 수 있습니다.


답변

귀하의 질문은 약간 모호합니다. 이것은 내가 원하는 것을 수행하는 쉘 명령입니다.

echo >> name_of_file


답변