2014-01-10 38 views
-1

我有一个路径列表,但我只关心某些路径。例如。以文件结尾的特定路径的Grep/SED/AWK

/nwsys/release/conf/reu/xprofd.cfg4 
/nwsys/release/conf/save/xprofd.cfg.rtcr1 
/nwsys/release/conf/amcxml4.conf 

如何从只有/nwsys/release/conf/anyfile.anyextension

grep "/nwsys/release/conf/"

+0

到目前为止,你从谁的人都互相不同的解释您的问题/要求3个不同的答案。发布一些具体的样本输入和期望的输出,以澄清你真正想要的东西。 –

回答

1

像这回?

awk -F/ '{print $1,$2,$3,$4,$NF}' OFS=/ file 
/nwsys/release/conf/xprofd.cfg4 
/nwsys/release/conf/xprofd.cfg.rtcr1 
/nwsys/release/conf/amcxml4.conf 

将路径更改为所有文件的三个级别。


或者是这个你正在寻找:

awk -F/ 'NF<6' file 
/nwsys/release/conf/amcxml4.conf 

具有与3个级别路径打印线。

+0

完美! awk -F /'NF <6'非常棒。谢谢你Jotne !! – TheHad

+1

Ahem - 你说你想匹配'/ nwsys/release/conf/anyfile.anyextension'。对'NF <6'的测试不检查文件名是否包含'。'后跟扩展名,也不排除'/ bin/ls'。 –

+1

完全同意@EdMorton'NF <6'与'anyfile.anyextension'要求有什么关系? – anubhava

2

你可以使用egrep的:

egrep '/nwsys/release/conf/.*\.' file 
/nwsys/release/conf/reu/xprofd.cfg4 
/nwsys/release/conf/save/xprofd.cfg.rtcr1 
/nwsys/release/conf/amcxml4.conf 

其中:

cat file 
/nwsys/release/conf/reu/xprofd.cfg4 
/nwsys/release/conf/save/xprofd.cfg.rtcr1 
/nwsys/release/conf/amcxml4.conf 
/nwsys/release/conf/anything 
+1

@TheHad - 你在看什么? anubhava的脚本将不会产生与您的示例输入中的其他答案相同的输出 - 无论哪个答案是正确的,他们都不能**全部**“工作”! –

2
$ egrep '^/nwsys/release/conf/[^/]+\.[^/]+$' file 
/nwsys/release/conf/amcxml4.conf 
+0

谢谢埃德。也适用于! – TheHad

+1

@TheHad - 真的想想你在这里做什么。我的脚本与Jotne脚本所做的完全不同,它会根据输入文件的内容产生截然不同的输出。仅仅因为2个脚本为3行样本输入产生相同的输出并不意味着它们在一般情况下都实际做到了你想要的。 –

相关问题