在Bash中使用两个连续分隔符拆分字符串
以下是Windows DHCP租约文件的摘录:在Bash中使用两个连续分隔符拆分字符串,bash,split,delimiter,Bash,Split,Delimiter,以下是Windows DHCP租约文件的摘录: 10.11.1.3 Infinite DHCP 5c497d1ee201 xxxx yyyyy 10.11.1.4 PC-name Infinite DHCP 0002025e611e xxxx yyyyy 我想得到可变的IP和MAC。下面是我分析每一行的方法: IFS=$'\t' read -r -a array <<< "$line&
10.11.1.3 Infinite DHCP 5c497d1ee201 xxxx yyyyy
10.11.1.4 PC-name Infinite DHCP 0002025e611e xxxx yyyyy
我想得到可变的IP和MAC。下面是我分析每一行的方法:
IFS=$'\t' read -r -a array <<< "$line"
ip=${array[0]}
mac=${array[3]}
IFS=$'\t'read-r-a数组您可以使用带有选项卡的awk
作为输入字段分隔符:
awk-F'\t'{print$1,$5}文件
10.11.1.3 5c497d1ee201
10.11.1.4 0002025e611e
您可以使用带有选项卡的awk
作为输入字段分隔符:
awk-F'\t'{print$1,$5}文件
10.11.1.3 5c497d1ee201
10.11.1.4 0002025e611e
我会改用readarray
$ line=$'10.11.1.3\t\tInfinite\tDHCP\t5c497d1ee201\txxxx\tyyyyy'
$ readarray -d $'\t' -t array <<< "$line"
$ declare -p array
declare -a array=([0]="10.11.1.3" [1]="" [2]="Infinite" [3]="DHCP" [4]="5c497d1ee201" [5]="xxxx" [6]=$'yyyyy\n')
$line=$'10.11.1.3\t\tInfinite\tDHCP\t5c497d1ee201\txxxx\tyyyyy'
$readarray-d$'\t'-t array我将使用readarray
$ line=$'10.11.1.3\t\tInfinite\tDHCP\t5c497d1ee201\txxxx\tyyyyy'
$ readarray -d $'\t' -t array <<< "$line"
$ declare -p array
declare -a array=([0]="10.11.1.3" [1]="" [2]="Infinite" [3]="DHCP" [4]="5c497d1ee201" [5]="xxxx" [6]=$'yyyyy\n')
$line=$'10.11.1.3\t\tInfinite\tDHCP\t5c497d1ee201\txxxx\tyyyyy'
$readarray-d$'\t'-t数组