【问题标题】:can I write on file.txt in the same line [duplicate]我可以在同一行的 file.txt 上写吗[重复]
【发布时间】:2021-07-17 15:44:44
【问题描述】:

这是我写的代码

echo "Positive count =" > file.txt | grep -o -i positive IMDB_Dataset.csv | wc -l >> file.txt

在 ubuntu 上,文件中的结果是

Positive count =
26188

我可以在同一行写成这样吗

Positive count = 26188

【问题讨论】:

  • 你真的在 Ubuntu 上使用 CMD 吗?您可能实际上正在使用 Bash。顺便说一句,欢迎来到 Stack Overflow!如果需要提示,请查看tourHow to Ask
  • 顺便说一句,echogrep 之间的管道什么也不做。用换行符替换它。
  • 也可以使用printf "Positive count = %d\n" "$(grep -Foi positive IMDB_Dataset.csv | wc -l)" >> file.txt(除了文字字符串,我倾向于避免使用echo

标签: linux bash ubuntu


【解决方案1】:
echo "Positive count =" `grep -o -i positive IMDB_Dataset.csv | wc -l` > file.txt

或者

echo "Positive count =" "$(grep -o -i positive IMDB_Dataset.csv | wc -l)" > file.txt

【讨论】:

  • 不推荐使用反引号。请改用较新的命令替换语法:$()
  • 另外,最好将替换的部分包含在双引号中
  • @Armali 也许它们本身并没有被弃用,但最好避免它们。无论如何,较新的语法更加灵活。
  • mywiki.wooledge.org/BashFAQ/082 有一篇关于为什么$() 更好的文章。 (更新?它已经有几十年的历史了。)
  • @Armali 我不欣赏你的语气,所以通常我不会回复,但你提出了一些有趣的观点。对于反引号,请参阅:Have backticks in *sh shells been deprecated? - Unix & Linux。当我说“已弃用”时,我的意思是它们已被取代,由于它们的局限性,现在应该避免使用。当我说“最佳实践”时,我并不是说这里需要它,而是在一些类似的情况下需要它,所以最好一直这样做。见ShellCheck SC2046
猜你喜欢
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-30
相关资源
最近更新 更多