私はubuntuに次のようなtxtファイルを持っています
-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 ftp02月26日11:378.txt
次のようなファイル名を取得したいだけですか?
6.txt
7.txt
8.txt
別のテキストファイルに
cut -d' ' -f 9 f1.txt > f2.txt
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
ファイル名がかなり統一されている場合は、grepと正規表現を使用します。
$ grep --color=never -oE '[[:alnum:]]+\.[[:alnum:]]{3}$' files.txt
上記は、色(干渉する可能性があります)を無効にし、一致する部分(-o)のみを出力し、拡張正規表現(-E)を使用して、1つ以上の英数字、ドット( "。")、続いて検索します。正確に3文字の英数字([[:alnum:]])と行末('$')。
ファイルにスペースが含まれている場合は、次のようになります。
-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