0

我在 ubuntu 上有一个 txt 文件,其中包含

-rw-r--r-- 1 ftp ftp 0 2 月 26 日 11:37 6.txt
-rw-r--r-- 1 ftp ftp 0 2 月 26 日 11:37 7.txt
-rw-r--r- - 1 ftp ftp 0 2 月 26 日 11:37 8.txt

我可以只想检索文件名吗

6.txt
7.txt
8.txt

到另一个文本文件

4

4 回答 4

2
awk '{print $NF}' your_file >only_names.txt

或者

perl -lane '{print $F[scalar(@F)-1]}' your_file >only_names.txt

如果要更改现有文件:

perl -i -lane '{print $F[scalar(@F)-1]}' your_file
于 2013-02-26T06:48:31.290 回答
2
cut -d' ' -f 9 f1.txt > f2.txt
于 2013-02-26T06:40:05.887 回答
0

如果您的文件包含空间,它可能看起来像

-rw-r--r-- 1 ftp ftp 0 Feb 26 11:37 6.txt 
-rw-r--r-- 1 ftp ftp 0 Feb 26 11:37 7.txt 
-rw-r--r-- 1 ftp ftp 0 Feb 26 11:37 a filename with space

用这个

cut -d' ' -f9- f1.txt > f2.txt

于 2013-02-26T07:53:08.610 回答
0

如果您的文件名非常统一,我会使用 grep 和正则表达式:

$ grep --color=never -oE '[[:alnum:]]+\.[[:alnum:]]{3}$' files.txt

以上禁用颜色(可能会干扰),只输出匹配部分(-o),使用扩展正则表达式(-E),然后找到一个或多个字母数字字符,后跟一个点(“.”),然后正好是三个字母数字字符([[:alnum:]])和一个行尾('$')。

于 2013-02-26T06:41:02.930 回答