我在各种文本文件中做笔记并经常这样做:
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
and 缩进,只需删除整个| { ... }
段:
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