使用grep命令在文件上创建数组

时间:2014-12-19 06:42:19

标签: unix

我使用grep命令使用文件中的数据创建数组。 这些是来自文件abc.xyz

的样本
[abc] Hello world
[abc] qwertyuy
[qwe] poiuyttrr
[abc] Zzxcvzxvxczv

我想将每一行存储在一个数组中,该数组包含单词' [abc]'一开始 我使用以下命令

grep -n "\[abc\]" abc.xyz

并将其存储在变量中,但变量被存储为数组。 请建议如何做。

1 个答案:

答案 0 :(得分:2)

假设你有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
$