【发布时间】:2018-08-28 09:08:31
【问题描述】:
玩 sed - 下面的命令可以满足需要,但一个衬里会更好。我尝试将前两个命令(使用分隔的';')组合起来以删除尾随的':',但没有成功。否则,只好删除最后一个 ':' 并写入一个新文件以执行下一个操作。
文件 'sys' 的单行包含可变数字字符和 ':' 分隔符。例如;
输入 - 'sys' 第一行 3.000000:50: 所需的输出,两个变量 thd=3 mem=50
thd=$(echo | sed 's/.......:.*//' < sys)
sed 's/:$//' < sys > sys1
mem=$(echo | sed 's|........:||' < sys1)
有没有办法结合前两个 sed 命令来避免写入第二个文件?我已经尝试了各种方法
类似这样的东西 - 编辑:这是删除尾随 ':' 的错误顺序
thd=$(echo | sed 's/:$//;s/.......:.*//' < sys)
mem=$(echo | sed 's|........:||' < sys1)
输出 3 50: 并附加分隔符。
编辑:这是正确的顺序并产生所需的输出。 Bash 不会将第一次操作的结果保存在 sys.sys 文件中。我应该在 3 班轮中选择它。
thd=$(echo | sed 's/.......:.*//' < sys)
mem=$(echo | sed 's|........:||;s/:$//' < sys)
【问题讨论】:
-
请包含输入并完成所需的输出
-
我已经修改了问题...