gpt4 book ai didi

linux - 从批处理 Linux 到 Windows 的 awk 和 sed 命令。如何转换?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:00 25 4
gpt4 key购买 nike

在我最近的项目中,我想制作一个脚本来转换 WireShark 输出以显示每个时间范围的字节数。有了这个我得到了工作脚本:

 ./tshark -r dumps/combinedOutput2.pcapng -T fields -e frame.time -e frame.len \
| sed -e 's/\..*\t/\t/' \
| awk -F"\t" '$1==last {sum += $2; next} {
printf("%s %8d bytes/s (%6.2f Mbit/s)\n",last,sum,sum*8/1024/1024);
last=$1;sum=$2}'

在 Windows 中(使用来自 GNU Windows 的 awk 和 sed 命令)引号和反斜杠的转义是不同的。但是我无法以正确的方式转换它并出现以下错误:

awk: {sed -e ^s/\.."\\t/\t/}
awk: ^ backslash not last character on line
tshark: An error occurred while printing packets: Invalid argument.

任何人都可以帮我正确格式化吗?提前致谢!

最佳答案

你能尝试用下面的双引号替换 awk 单引号吗

 ./tshark -r dumps/combinedOutput2.pcapng -T fields -e frame.time -e frame.len \
| sed -e 's/\..*\t/\t/' \
| awk -F"\t" '$1==last {sum += $2; next} {
printf("%s %8d bytes/s (%6.2f Mbit/s)\n",last,sum,sum*8/1024/1024);
last=$1;sum=$2}'

并使用 \

转义 " 中的双引号
 ./tshark -r dumps/combinedOutput2.pcapng -T fields -e frame.time -e frame.len \
| sed -e 's/\..*\t/\t/' \
| awk -F"\t" "$1==last {sum += $2; next} {
printf(\"%s %8d bytes/s (%6.2f Mbit/s)\n\",last,sum,sum*8/1024/1024);
last=$1;sum=$2}"

关于linux - 从批处理 Linux 到 Windows 的 awk 和 sed 命令。如何转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37026058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com