2014-04-03 31 views
1

例如,AAA000和BBB111是CARDS組下的用戶....我試圖以以下格式獲取輸出。我試圖獲取下列組中的用戶列表

AAA000 [email protected] \ 
BBB111 [email protected] \ 

我試過grep -i卡:/ etc/group | sed's/$ /,/'| SED的/,/ @ capitalone.com \ N/G' 這給了我

cards:x:36082:[email protected] 
[email protected] 
[email protected] 

任何想法,我還需要在命令中包括要獲得在我需要的格式...?

謝謝, 山姆。

+0

就這麼理解,你試圖從/ etc/group獲得 <[email protected]> ? – wbt11a

+0

@ wbt11a:是的,你是對的.... –

+0

@jaypal:輸入是CARDS組中的用戶,看起來像CARDS,AAA000,BBB111從'grep -i卡:/ etc/group' –

回答

0

可以在AWK做到這一點:

awk -F, '/cards:/{for(i=2;i<=NF;i++){printf"%s %[email protected]\n", $i, $i}}' file 

輸入:

cat file 
cards:x:36082:CARDS,AAA000,BBB111 

輸出:用grep和awk

AAA000 [email protected] 
BBB111 [email protected] 
+0

:它沒有工作,但我調整你的代碼一點點得到輸出... thanku .../ etc/group | awk -F,'/ cards:/ {for(i = 2; i <= NF; i ++)print $ i,$ i「@ pattern.com \\」}' –

1

假設你的投入是這樣的:

$ cat file 
cards:x:36082:CARDS,AAA000,BBB111 

你可以這樣做:

$ perl -F, -lane 'if(/cards:/){print "$_ $_\@pattern.com" for (@F[1..$#F])}' file 
AAA000 [email protected] 
BBB111 [email protected] 
  • 我們使用,作爲字段分隔符(由-F,定義)。
  • 使用-a選項將,的整行劃分爲由@F定義的數組。
  • 我們測試當前行是否是您想要通過執行解析的行if(/cards:/)
  • 如果是這樣,我們打印從第二個索引(@F[1..$#F])開始的數組中的每個元素,直到最後一個。這是因爲我們的第一個索引將具有您不需要的值cards:x:36082:CARDS
+0

嗨Jaypal,這是加工。但是,如果我想使用由grep命令輸出的命令,該命令是.................. grep -i cards:/ etc/group | 「你的命令」 –

+2

你不需要將它傳遞給'grep'。這個看着有'cards'的行('if(/ cards:/'),這基本上就是你的團隊正在做的事情。只需用'/ etc/group'替換'file',你應該全部設置好。 –

+0

Hey Jaypal感謝這個腳本,它正在給我正在尋找的東西,如果你給我一個想法,這個腳本部分是怎麼做的,那將是非常棒的...... ..... for(@F [1。 。$#F])} –

-1

找到的命令...... .....

grep -i CARDS: /etc/group|awk -F, '/cards:/{for(i=2;i<=NF;i++) print $i,$i"@pattern.com \\"}' 

感謝您的幫助球員。

+0

答案不適合你嗎? –

+0

它工作正常.....但我們這裏沒有人不熟悉PERL,所以他們需要一些UNIX命令。 –