cat >> 文件一行

cat >> 文件一行

我在各种文本文件中做笔记并经常这样做:

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

如果您不需要dateand 缩进,只需删除整个| { ... }段:

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

相关内容