我在使用lftp的ftps服务器上。当我运行ls时,我得到类似的东西(没有额外的标志):
02-19-18 11:32AM <DIR> Wingdings
01-31-18 05:17PM <DIR> Dongles
02-20-18 08:21AM <DIR> Dingbats
02-20-18 09:42AM Foobars
01-25-18 11:19AM Coolcats
02-13-18 02:51AM McDonald
我正在尝试获取名称中包含大写字母D的所有文件夹或目录,因此我跑了:
lftp xxx@xxx:/> ls | grep D
02-19-18 11:32AM <DIR> Wingdings
01-31-18 05:17PM <DIR> Dimwits
02-20-18 08:21AM <DIR> Dingbats
02-13-18 02:51AM McDonald
我只期望获得Dimwits和Dingbats,但由于该行中的<DIR>
,我也得到了Wingdings。我知道我可以跑:
lftp xxx@xxx:/> ls | awk {\'print $4\'} | grep D
Dimwits
Dingbats
McDonald
但这会截断我想要的前三列。
有没有办法做到这一点:
lftp xxx@xxx:/> ****** some magical command ******
01-31-18 05:17PM <DIR> Dimwits
02-20-18 08:21AM <DIR> Dingbats
02-13-18 02:51AM McDonald
答案 0 :(得分:0)
列出文件和目录的正确命令是:
lftp xxx@xxx:/> glob -a echo *D*
输出:
Dongles Dingbats DIR DIR DIR...
此列表文件和目录(-a
)并且不需要解析ls
!
检查:
man lftp | less +/glob
答案 1 :(得分:0)
我可以请你尝试使用以下命令: -
lftp xxx@xxx:/> ls | grep "*D???"
答案 2 :(得分:0)
要仅获取包含给定列中字符串的行并获取此行的所有列,请使用以下内容:
ls | awk '($3 == "<DIR>" && $4 ~ /D/) || ($3 != "<DIR>" && $3 ~ /D/) { print }'
答案 3 :(得分:0)
如果要在最后一个字段中找到D,请在其后面找到没有fieldsep的D.我认为你需要标签,我用空格测试了它:
this.CreateMap<MyViewModel, MyModel>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name))
.ForMember(dest => dest.Description, opt => opt.MapFrom(src => src.Description))
.ForMember(dest => dest.FieldA, opt => opt.MapFrom(src => StaticHelper.Parse(src.Value).FieldA))
// More instances of the same static helper unnecessarily instantiated.
.ForMember(dest => dest.FieldG, opt => opt.MapFrom(src => StaticHelper.Parse(src.Value).FieldG));