问题描述
$ tail -n1 /home/shares/number-10.log
123456
我希望输出为:12,34,56
解决方法
tail -n1 /home/shares/number-10.log | sed -r 's/([[:digit:]]{2})/\1,/g;s/,[[:space:]]?+$//'
使用 -r 或 -E 启用 sed 正则表达式解释,然后用两个数字后跟逗号替换所有出现两次的数字。然后在第二个语句中,删除末尾的逗号。
根据要求修改答案:
tail -n1 /home/shares/number-10.log | sed -r 's/([[:digit:]]{2})/\1|/g;s/|[[:space:]]?+$//'
与第一个示例相同,但使用“|”而不是“,”
,也可以使用bash变量操作:
var=`tail -n1 /home/shares/number-10.log`
echo "${var:0:2},${var:2:2},${var:4:2}"
echo "${var:0:2}|${var:2:2}|${var:4:2}"