Unix 在文件上使用grep命令创建数组
我正在使用grep命令使用文件中的数据创建一个数组。 这是来自abc.xyz文件的示例Unix 在文件上使用grep命令创建数组,unix,Unix,我正在使用grep命令使用文件中的数据创建一个数组。 这是来自abc.xyz文件的示例 [abc] Hello world [abc] qwertyuy [qwe] poiuyttrr [abc] Zzxcvzxvxczv 我想将每一行存储在一个数组中,该数组的开头有单词“[abc]” 我正在使用以下命令 grep -n "\[abc\]" abc.xyz 并将其存储在变量中,但varaiable被存储为数组。 请建议如何操作。假设您有Bash或Korn shell: var=( $(gre
[abc] Hello world
[abc] qwertyuy
[qwe] poiuyttrr
[abc] Zzxcvzxvxczv
我想将每一行存储在一个数组中,该数组的开头有单词“[abc]”
我正在使用以下命令
grep -n "\[abc\]" abc.xyz
并将其存储在变量中,但varaiable被存储为数组。
请建议如何操作。假设您有Bash或Korn shell:
var=( $(grep -n "\[abc\]" abc.xyz) )
var=(…)
创建数组。$(…)
执行一个命令,并将结果标记化。请注意,标签等将拆分为单独的单词。对于输入文件,输出为:
$ printf "%s\n" "${var[@]}"
1:[abc]
Hello
world
2:[abc]
qwertyuy
4:[abc]
Zzxcvzxvxczv
$
如果要在换行符上拆分,则必须使用IFS
:
$ old="$IFS"
$ IFS=$'\n' # Bash - may not be available in ksh
$ var=( $(grep -n "\[abc\]" abc.xyz) )
$ IFS="$old"
$ print "%s\n" "${var[@]}"
1:[abc] Hello world
2:[abc] qwertyuy
4:[abc] Zzxcvzxvxczv
$