【问题标题】:Shell Script (.sh file) to read a line and copy specific value to another text file in AndroidShell脚本(.sh文件)读取一行并将特定值复制到Android中的另一个文本文件
【发布时间】:2016-08-01 02:39:19
【问题描述】:

我的英语不太好,而且我是新手

我需要一个可以读取一行并复制该行具体值的shell脚本(.sh文件),例如:

我有 test.txt,其中包含

One: 850456
Two: 15192

test.txt 里面显示 2 行,我只需要第一行中的 850456,然后自动将数字写入另一个文本文件。如果可以,也可以从此 .sh 文件创建另一个文本文件

还有一个问题,如果数字是随机的,有办法复制吗?

我不知道 Linux Shell Script 和 Android Shell Script 有什么不同。但是这个,我需要从 Android 运行它

【问题讨论】:

  • 首先,您不需要删除旧问题。其次,请分享您尝试过的内容并解释为什么它必须是一个 shell 脚本
  • Android 是基于 Linux 内核的,所以这两种类型应该没有太大区别。您是否尝试过使用 cut: tldp.org/LDP/abs/html/textproc.html 之类的命令?
  • @T.M - shell 命令与内核无关。 Android 有一个 Linux 内核,是的,但它有自己的用户空间、自己的 shell 和自己的实用程序集合。存在的内容因构建而异 - 最初很少,今天您可能会期待更多。
  • 谢谢,@ChrisStratton。它应该是终端/shell 确实非常相似,不同之处在于 android 的可用命令少于成熟的 Linux 系统。这就是我试图传达的内容,但是是的,它与内核无关。
  • 谢谢大家,我需要命令并将其写入 .sh 文件,然后将其放入可闪存 zip 中,我需要它来检测 /proc/meminfo 中的 MemTotal(第一行)并复制只有价值,这就是我试图做的。为什么我删除我的第一个问题,因为有人告诉我关闭它,其他问题都有答案,我意识到关闭就是删除问题。

标签: android shell sh


【解决方案1】:

如果文件的格式如您所见:

one: 234234234
two: 23423423423
three: 23453453635
four: 2342342342423

那么您可以轻松使用以下命令而无需脚本

cat test.txt | cut -d":" -f2 | sed 's/ //g'

输出将是上述文件中的所有数字。如果您想将此结果保存到文件中,请使用以下命令。

cat test.txt | cut -d":" -f2 | sed 's/ //g' > result.txt

这将在每次使用结果时覆盖文件。

只有第一行你可以使用类似下面的东西

head -n 1 test.txt | cut -d":" -f2 | sed 's/ //g' > result.txt

希望这会有所帮助。

【讨论】:

  • 好的,我试试看,它显示了所有的数字,但我只需要第一行而不是整个字段,这也回答了我的问题,但请你告诉我更多如何获得第一行?只是第一行。
  • 然后使用这个head -n 1 test.txt |剪切-d":" -f2 | sed 's/ //g' > result.txt 我已经更新了原来的答案。
  • 还有,数字后面有这样的字符:one: 234234234 ab,我试了一下,ab也写了,ab不在字段2吧?
  • 这是因为我们是基于分隔符 ":" 来分隔的,这意味着 "one" 和 "234234234 ab"。要进一步划分它,您可以将其通过管道传递给另一个 cut -d"" -f1 命令,它将删除 ab 部分。这里的分隔符是空格或空格。
  • 原来是这样head -n 1 test.txt | cut -d":" -f2 | cut -d"" -f1 | sed 's/ //g' > result.txt
猜你喜欢
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
  • 2016-04-14
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多