고양이 >> 파일 라인

고양이 >> 파일 라인

나는 다양한 텍스트 파일에 메모를 하고 종종 다음과 같이 합니다.

cat >> notes.txt

better not forget this

<ctrl-D>

파일에 약간만 추가하는 경우 추가 키 입력을 저장하고 Enter, Ctrl-D를 누르는 것이 가장 좋습니다.

한 줄로 이 작업을 어떻게 수행할 수 있습니까? 텍스트 파일에 몇 개의 문자를 추가하고 Enter 키를 누르기만 하면 됩니까?

답변1

다음 기능을 사용할 수 있습니다.

addnotes () {
    echo "$*" >> /path/to/notes.txt
}

그런 다음 명령줄 인수로 주석을 추가하면 됩니다.

$ addnotes better not forget this

답변2

bash단일 또는 다중 라인을 처리하는 간단한 스크립트(또는 함수):

note() {
    # If we have text on the line use it, otherwise read from stdin
    { [[ $# -gt 0 ]] && printf "%s\n" "$*" || cat; } |

    # Write current date/time, then append collected text indented by two spaces
    { date; sed 's/^/  /'; echo; } >> "$HOME/note.txt"
}

이를 통해 간단한 알림이 가능합니다.

note remember this

또는 더 복잡한 단락

note
Remember this
and this too

oh and this
<Ctrl/D>

알림은 파일에 기록되며 $HOME/note.txt, 각 알림 앞에는 현재 날짜/시간이 붙습니다.

cat ~/note.txt
10 Dec 2020 16:03:59
  remember this

10 Dec 2020 16:04:05
  Remember this
  and this too

  oh and this

들여쓰기가 필요하지 않으면 date전체 | { ... }단락을 제거하면 됩니다.

note() { { [[ $# -gt 0 ]] && printf "%s\n" "$*" || cat; } >> "$HOME/note.txt"; }

또는 스크립트로 사용합니다(실행 가능하게 만들고 해당 위치에 저장하는 것을 기억하세요 $PATH).

#!/bin/bash
{ [[ $# -gt 0 ]] && printf "%s\n" "$*" || cat; } |
    { date; sed 's/^/  /'; echo; } >> "$HOME/note.txt"

답변3

cat사용. . . 교체 echo:

echo "Better not forget this" >> notes.txt

관련 정보