小编fwa*_*ter的帖子

如何将文本文件的每两行与Bash配对?

使用简单的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吧?

bash sed text-files

36
推荐指数
3
解决办法
2万
查看次数

BASH - 制作第一个Letter大写字母

我尝试将CS​​V中的第一个字母大写,其排序方式如下:

A23; asd23; sdg3

我想要的是这样的输出

A23; Asd23; Sdg3

所以第一个String应该是原样的,但第二个和第三个字符串应该是大写的第一个字母.我试过AWK和SED,但我找不到合适的解决方案.有人可以帮忙吗?

string bash capitalization

9
推荐指数
2
解决办法
9450
查看次数

使用 Bash 解析 dhcpd.lease 文件

我尝试用巴塞尔解析我的 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 中的许多条目和文件我无法正确解析它。 …

bash grep parsing

4
推荐指数
1
解决办法
2万
查看次数

BASH:拆分MAC地址 - > 000E0C7F6676到00:0E:0C:7F:66:76

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中会很好.:-)

提前致谢.

string macos bash split

4
推荐指数
2
解决办法
4665
查看次数

Grep与"half" - 完全匹配

我尝试使用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"的人.有人也可以帮忙吗?

bash grep sed

1
推荐指数
1
解决办法
463
查看次数

标签 统计

bash ×5

grep ×2

sed ×2

string ×2

capitalization ×1

macos ×1

parsing ×1

split ×1

text-files ×1