找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 12678|回复: 0

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

[复制链接]
发表于 2022-3-11 10:26:40 | 显示全部楼层 |阅读模式
本帖最后由 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:23 , Processed in 0.017079 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表