我很难编写一行程序(并行sed命令)来解析以下字符串(可以在/proc/interrupts中看到)字符串是:
69: 0 0 55 0 PCI-X eth-1@XX
输出字符串应为:
69 XX@eth-1
(如果颠倒顺序太复杂,甚至可以使用69 eth-1
)
为了说明,输入字符串的格式是:“%d:<...$d...> PCI-X eth-%x@XX”字符串PCI-X对我来说并不重要,eth-1可以是eth-2...eth-15 XX是我预先读取的字符串
请帮帮我!谢谢
发布于 2018-08-30 03:25:08
试试这个:
echo '69: 0 0 55 0 PCI-X eth-1@XX'|sed 's/^\(..\).*X \(.*\)@\(.*\)$/\1 \3@\2/g'
发布于 2018-08-30 03:25:37
试试这个:
$ sed -re 's/^([^:]+):.*(eth-[[:xdigit:]]+)@(.+)$/\1 \3@\2/' <<< "69: 0 0 55 0 PCI-X eth-1@XX"
69 XX@eth-1
使用像regex101这样的东西非常有用:https://regex101.com/r/IO48P5/1
https://stackoverflow.com/questions/52084672
复制相似问题