我使用grep命令使用文件中的数据创建数组。 这些是来自文件abc.xyz
的样本[abc] Hello world
[abc] qwertyuy
[qwe] poiuyttrr
[abc] Zzxcvzxvxczv
我想将每一行存储在一个数组中,该数组包含单词' [abc]'一开始 我使用以下命令
grep -n "\[abc\]" abc.xyz
并将其存储在变量中,但变量被存储为数组。 请建议如何做。
答案 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
$