使用简单的bash脚本,我生成一个包含许多行的文本文件,如下所示:
192.168.1.1
hostname1
192.168.1.2
hostname2
192.168.1.3
hostname3
Run Code Online (Sandbox Code Playgroud)
现在我想重新格式化这个文件,看起来像这样:
192.168.1.1 hostname1
192.168.1.2 hostname2
192.168.1.3 hostname3
Run Code Online (Sandbox Code Playgroud)
我将如何以这种方式重新格式化?也许sed吧?
我尝试将CSV中的第一个字母大写,其排序方式如下:
A23; asd23; sdg3
我想要的是这样的输出
A23; Asd23; Sdg3
所以第一个String应该是原样的,但第二个和第三个字符串应该是大写的第一个字母.我试过AWK和SED,但我找不到合适的解决方案.有人可以帮忙吗?
我尝试用巴塞尔解析我的 dhcpd.lease 文件。典型的条目如下所示:
lease 192.168.20.4 {
starts 6 2009/06/27 00:40:00;
ends 6 2009/06/27 12:40:00;
hardware ethernet 00:00:00:00:00:00;
uid 00:00:00:00:00:00;
client-hostname "examle-workstation1";
}
Run Code Online (Sandbox Code Playgroud)
我得到的所有信息都是 MAC,我想要的是 IP 和客户端主机名。但也许,没有客户端主机名。该条目如下所示:
lease 192.168.20.5 {
starts 6 2009/06/27 00:40:00;
ends 6 2009/06/27 12:40:00;
hardware ethernet 00:00:00:00:00:00;
}
Run Code Online (Sandbox Code Playgroud)
我的第一个想法是 grep 租赁属性、硬件以太网属性和 uid 属性,并将它们全部放在一行上。然后解析它。
但我的问题是,我有一个大文件,在许多文件中分配了许多条目。树看起来像这样:
dhcpd-leases
-- 192.168.20.0
-- 192.168.30.0
-- 192.168.40.0
[...]
Run Code Online (Sandbox Code Playgroud)
我得到的所有东西都是从另一个文件解析到列表中的 MAC。所以我从这个列表开始,想用我的 MAC 来 grep 属性 ip, mac:
for ENTRY in $MACLIST
do
VAR$(cat "dhcpd-leases/10.148.$NETWORK.2/dhcpd.leases" | grep -E "$MAC|lease|client-hostname")
echo $VAR
done
Run Code Online (Sandbox Code Playgroud)
但这是因为 $VAR 中的许多条目和文件我无法正确解析它。 …
HY,
有人可以帮助我从日志文件中拆分mac地址吗?:-)
这个:
000E0C7F6676
Run Code Online (Sandbox Code Playgroud)
应该:
00:0E:0C:7F:66:76
Run Code Online (Sandbox Code Playgroud)
Atm我把它与OpenOffice分开,但是有超过200个MAC地址'这非常无聊和缓慢......
如果解决方案是在bash中会很好.:-)
提前致谢.
我尝试使用grep来匹配这样的情况:
我有这种格式的主机名和ips列表:
238-456 192.168.1.1
ak238-456 192.168.1.2
238-456a 192.168.1.3
458-862 192.168.1.4
Run Code Online (Sandbox Code Playgroud)
现在我尝试grep"238-456",但当然这会返回:
238-456 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
和...
ak238-456 192.168.1.2
Run Code Online (Sandbox Code Playgroud)
和...
238-456a 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
但我只需要238-456的线.在这种情况下,我不能使用-x因为当然它不会返回任何结果.
有没有简单的方法来解决这个问题?
用"^"给出的答案解决了第一个问题.但最后不是那个带有"a"的人.有人也可以帮忙吗?