我需要提取ftp服务器的文件列表(只是文件名)
我将所有命令放在txt文件中并使用
调用它ftp -ivn < ftp.command > ls.txt
(ftp.command的内容)
open 192.168.43.12
user user1 pasw1
ls
所以,ls.txt包含
drwxr-xr-x 4 1000 100 4096 Dec 05 05:09 FILE1
drwxrwxrwx 2 1000 100 4096 Dec 11 09:38 FILE3
drwxrwxrwx 2 1000 100 4096 Dec 05 09:11 FILE2
我需要提取
FILE1
FILE2
FILE3
如何解析ls的输出?
由于
答案 0 :(得分:0)
找到解决方案
grep -oE '[^ ]+$' ls.txt
答案 1 :(得分:0)
实际上有很多方法可以做到这一点,这里很少:
而不是ls
使用ls whateveryouwant | xargs -n 1 basename
如果您知道路径,请ls /path/*.txt | sed -r 's/^.+\///'
ls -1 *.txt
答案 2 :(得分:0)
要仅检索文件名列表,请使用nlist
代替ls
。
在FTP协议级别,命令为NLST
。
可能仍然存在您不想存储的输出(在我的简单ftp
客户端中,包含状态消息)。
FTP客户端和服务器在实现细节方面有很大不同,但协议提供了这种功能,因此您无需在收到的文件名列表上进行任何其他解析。