![LibreOffice.org: 명령줄에서 새 파일 만들기](https://linux55.com/image/180180/LibreOffice.org%3A%20%EB%AA%85%EB%A0%B9%EC%A4%84%EC%97%90%EC%84%9C%20%EC%83%88%20%ED%8C%8C%EC%9D%BC%20%EB%A7%8C%EB%93%A4%EA%B8%B0.png)
나는 내 명령 줄을 좋아합니다. 다음과 같이 입력할 수 있다는 점이 마음에 듭니다.
emacs non-existing-file.txt
그런 다음 emacs
아직 존재하지 않는 파일 편집을 시작하지만 저장하면 이름이 non-existing-file.txt
.
저는 LibreOffice.org도 좋아하지만 다음을 사용하여 동일한 작업을 수행할 수 있는 방법을 찾지 못했습니다 emacs
.
lowriter non-existing.odt
LibreWriter가 열리지만 파일이 생성되지 않습니다. 대신 파일이 존재하지 않는다고 불평합니다.
lowriter
이 디렉터리에서 이라는 새 파일을 시작하려고 한다는 것을 명령줄에서 알 수 있는 방법이 있습니까 non-existing.odt
?
답변1
이 기능은2002년에 OpenOffice를 요청하다그리고리브레오피스 2011. 현재로서는 두 프로젝트 모두 구현되지 않았습니다.
해결책은 어딘가에 빈 파일을 만든 다음 복사본을 만들어 새 파일을 만드는 것입니다. 그러나 이렇게 하면 생성 날짜와 같은 원본 생성의 메타데이터가 유지되므로 결과는 새 문서를 생성하는 것과 다릅니다. 검증되지 않은.
#!/bin/sh
# Create a new file if the argument does not exist. Do it only if there is a single
# argument and no option.
if [ $# -eq 1 ]; then
case "$1" in
-*) :;;
*)
if ! [ -e "$" ]; then
basename="${1##*/}"
case "$basename" in
*.*)
extension="${basename##*.}"
cp ~/templates/default."$extension" "$1" || exit $?
esac
fi;;
esac
fi
exec loffice "$@"
빈 파일을 변환하면 텍스트 문서( .odt
)를 만들 수 있지만 다른 유형의 문서는 만들 수 없습니다(Libreoffice 5.1.6.2 사용). 이유는 모르겠습니다.
#!/bin/sh
set -e
# Create a new file if the argument does not exist. Do it only if there is a single
# argument and no option.
if [ $# -eq 1 ]; then
case "$1" in
-*) :;;
*)
if ! [ -e "$" ]; then
basename="${1##*/}"
case "$basename" in
*.*)
extension="${basename##*.}"
empty_file=$(mktemp)
unoconv -f "$extension" -o "$1" "$empty_file"
rm -f "$empty_file"
esac
fi;;
esac
fi
exec loffice "$@"
답변2
문제 및 해결 방법
이게 가능하리라 기대했는데 그렇지 않네요! 최근에 입사 지원서를 작성했는데 매번 새 이력서/자기 소개서를 수동으로 작성하는 것이 지루했습니다.
내 해결책은 이력서와 자기소개서를 저장하는 "base"라는 디렉토리를 만드는 것이었습니다.
그러면 bash 스크립트는 다른 곳에 있는 다른 "scripts" 폴더에 저장됩니다. 이름은 "apply.sh"입니다.
코드, 예제 및 파일 구조
새 이력서(또는 이력서) 파일 생성의 예:
apply.sh -r important_business_job
# creates...
~/.../your_job_applications_folder/cv_your_name_here_important_business_job.docx
내가 사용하는 코드는 다음과 같습니다.
# Takes a CV or cover letter and copies it with the role name changed.
#! /bin/bash
if getopts c:r: name
then
case $name in
c)OUTFILE= cover_letter_your_name_here_${OPTARG}.docx; INFILE=base/base_cover_letter.docx;;
r)OUTFILE=cv_your_name_here_${OPTARG}.docx; INFILE=base/base_cv.docx;;
*)echo "Invalid argument. Please select either 'r' for resume or 'c' for cover letter";;
esac
cp $INFILE $OUTFILE
else
echo "Please select the type of file to create (either 'r' for resume or 'c' for cover letter)"
fi
shift $(($OPTIND -1))
파일 구조:
your_job_applications_folder
├── base
│ ├── base_cover_letter.docx
│ └── base_cv.docx
└── NEW_FILES_GO_HERE
그렇다면 이것이 이 기사와 어떤 관련이 있습니까?
동일한 "기본" 폴더 설정을 사용하면 매번 base.docx 문서에서 빈 문서를 복사하여 효과적으로 새 문서를 생성하도록 코드를 변경할 수 있습니다. 그러나 이렇게 하면 원본 메타데이터가 보존될 수 있습니다...