-1
输入是git中的多个yaml文件:grep -v with perl one liner
例如,配置/ conf目录/主机/ ghf04.lmn /发动机1.yaml
ports:
ajp: 8010
http: 8011
shutdown: 8012
apps:
- null
- Michael
- Hardy
我有这样的事情在应用程序中提取数据:
for j in a b
do
for i in 01 02 03 04 05 06 07 08 09 10
do
echo $j$i
ssh $j$i 'grep -P ".+(- .+)" abc/engine*yaml | perl -pe "s|\abc\/(ghf\d{2})\.lmn\/(engine-\d{1,2}).yaml:.+- (.+)|\1;\2;\3|g" |sort'
done # end CM
做
这给了我一个输出形式为:
a04
ghf04;engine-1;null
ghf04;engine-1;Michael
ghf04;engine-1;Hardy
我想从grep循环中删除包含null的行。那么我在哪里把grep -v放在perl命令中呢?试了几件事情像下面,但没有工作:
ssh $j$i 'grep -P ".+(- .+)" abc/engine*yaml | perl -pe "s|\abc\/(ghf\d{2})\.lmn\/(engine-\d{1,2}).yaml:.+- (.+)|\1;\2;\3|g" |grep -v ghf.+null |sort'
Perl是超过能够全部由自己处理这个。如果你只是展示了一些输入,期望的输出和你的'grep |,你的问题会更清晰perl |排序'管道没有循环或'ssh'部分。 –
输入是一个git yaml文件,类似于: 应用程序: - null - Michael - Hardy –
请[编辑]这个问题向我们展示一个有代表性的小例子。 –