imc@xubuntu:~$ echo “[ESS] 123 123” | awk -F ‘[[:space:]]+’ ‘{print $2}’ 123 //只输出123而不是123 123 , 如何输出123 123
时间: 2024-09-25 08:17:09 浏览: 70
该命令 `echo "[ESS] 123 123" | awk -F '[[:space:]]+' '{print $2}'` 使用了awk工具对输入字符串进行处理。它通过空格分隔符 `-F ' [[:space:]]+'` 将输入文本分割成字段,然后仅打印出第2个字段(索引从0开始计数)。所以,输出结果就是 `123`。
如果你想输出完整的 "123 123" 而不是单独的每个数字,你需要稍微调整下awk命令。你可以选择忽略空格并打印整个记录,例如:
```bash
echo "[ESS] 123 123" | awk -F '[[:space:]]*' '{print}'
```
这将保持原始的 "123 123" 输出。如果你只是想去除多余的空格,可以使用 `gsub()` 函数替换所有连续的空格为单个空格:
```bash
echo "[ESS] 123 123" | awk -F '[[:space:]]+' 'BEGIN {ORS=" "} {gsub(/ +/, " ", $0); print}'
```
这里 `ORS=" "` 设置输出记录间的分隔符为一个空格,`gsub(/ +/, " ", $0)` 替换每行中的多余空格。
相关问题
imc@xubuntu:~$ sudo wpa_cli -d ' ' -f5- | sed -n 's/^.*\[SSID\]\(.*\)$/\1/p' wpa_cli: invalid option -- 'd'
在给出的命令 `imc@xubuntu:~$ sudo wpa_cli -d ' ' -f5- | sed -n 's/^.*\[SSID\]\(.*\)$/\1/p'` 中,`sudo wpa_cli` 是用于管理Wi-Fi连接的工具,但似乎在尝试使用了一个无效的选项 `-d`。`-d` 通常表示详细模式,但在 `wpa_cli` 的帮助文档中并没有找到这个选项。可能是误打或者该版本的 `wpa_cli` 已经移除了这个选项。
正确的语法可能是只使用 `-f5-` 参数来指定输出格式,或者直接查看 `scan_result` 不使用管道 (`|`) 进行进一步处理。例如,如果想直接查看所有的 SSIDs,你可以这样做:
```bash
sudo wpa_cli -i <interface> scan_result | grep -o '\[SSID\]\([^\]]*\)'
```
这里使用了 `grep` 命令来查找包含 `\[SSID\]` 的部分,并去除其前面的部分,留下 SSID。
如果想在 `wpa_cli` 内部设置输出格式,可能需要查阅具体的文档或使用 `-h` 或 `--help` 查看可用的选项。
阅读全文