当然,必须有一个更优雅的方式来做到这一点!我想执行一个命令,然后用命令本身创建一个文本文件,几行新行,然后输出命令。
对于context,这样做的原因是,查看文本文件的人将能够看到刷新文件内容所需的命令。
这里有一个例子,它给出了几乎正确的结果,但是很麻烦。

cat /proc/meminfo > meminfo.txt; sed -i '1s/^/\/proc\/meminfo pipeSymbol meminfo\.txt \n\n/' meminfo.txt

以下是meminfo.txt文件的内容:
/proc/meminfo pipeSymbol meminfo.txt

MemTotal:       263024768 kB
MemFree:        255517652 kB

如果可能的话,我想从以下几个方面加以改进。但任何能让它更干净一点的东西也会很感激。
不再需要手动再次写入命令
不需要在sed命令中手动转义特殊符号
如果无法完成上述操作,如何插入>而不是文本pipeSymbol

最佳答案

在sed中可以使用另一个符号作为分隔符。你可以这样写你的SET语句。

cat /proc/meminfo > meminfo.txt; sed -i '1s#^#/proc/meminfo >  meminfo.txt \n\n#' meminfo.txt

你可以像下面这样做。首先将命令和输出设置为变量。并将它们作为变量执行。
mycmd="ls -l"
out="myout.txt"
eval $mycmd > $out; sed -i -e "1s#^#$mycmd > $out \n\n#" $out

希望这有帮助。

10-07 21:45