2014-12-19 55 views
0

我正在使用grep命令使用文件中的數據創建陣列。 這些是從一個文件的樣品abc.xyz在文件上使用grep命令創建陣列

[abc] Hello world 
[abc] qwertyuy 
[qwe] poiuyttrr 
[abc] Zzxcvzxvxczv 

我想於每行的存儲在其中具有單詞「的陣列[ABC]」在開始時 我使用下面的命令

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

並將其存儲在一個變量中,但變量被存儲爲一個數組。 請建議如何去做。

回答

2

假設你有擊或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 
$