[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 大佬们,Linux shell sed代码替换求助

本帖最后由 smdx 于 2022-3-11 10:37 编辑

各位大佬好,Linux shell sed代码替换求助,请问如何用sed命令替换代码?

想实现把代码的
a=$(ip address | grep ^[0-9] | awk -F: '{print $2}' | sed "s/ //g" | grep '^[e]' | grep -v "@" | grep -v "\.")
替换成
a=$(ip address | grep ^[0-9] | awk -F: '{print $2}' | sed "s/ //g" | grep '^eth' | awk -F"@" '{print $1}')

命令用于GitHub Actions云编译openwrt固件sh脚本,请问要怎么做?谢谢


ethinfo原代码:
  1. #!/bin/sh
  2. a=$(ip address | grep ^[0-9] | awk -F: '{print $2}' | sed "s/ //g" | grep '^[e]' | grep -v "@" | grep -v "\.")
  3. b=$(echo "$a" | wc -l)
  4. rm -f /tmp/state/ethinfo
  5. echo -n "[" > /tmp/state/ethinfo
  6. for i in $(seq 1 $b)
  7. do
  8. h=$(echo '{"name":' )
  9. c=$(echo "$a" | sed -n ${i}p)
  10. d=$(ethtool $c)
  11. e=$(echo "$d" | grep "Link detected" | awk -F: '{printf $2}' | sed 's/^[ \t]*//g')
  12. if [ $e = yes ]; then
  13. l=1
  14. else
  15. l=0
  16. fi
  17. f=$(echo "$d" | grep "Speed" | awk -F: '{printf $2}' | sed 's/^[ \t]*//g' | tr -d "Unknown!")
  18. [ -z "$f" ] && f=" - "
  19. g=$(echo "$d" | grep "Duplex" | awk -F: '{printf $2}' | sed 's/^[ \t]*//g')
  20. if [ "$g" == "Full" ]; then
  21. x=1
  22. else
  23. x=0
  24. fi
  25. echo -n "$h \"$c\", \"status\": $l, \"speed\": \"$f\", \"duplex\": $x}," >> /tmp/state/ethinfo
  26. done
  27. sed -i 's/.$//' /tmp/state/ethinfo
  28. echo -n "]" >> /tmp/state/ethinfo
  29. cat /tmp/state/ethinfo
复制代码

返回列表