我有一个大型日志文件,我需要从中提取文件名。
该文件如下所示:
/path/to/loremIpsumDolor.sit /more/text/here/notAlways/theSame/here
/path/to/anotherFile.ext /more/text/here/differentText/here
.... about 10 million times
我需要提取这样的文件名:
loremIpsumDolor.sit
anotherFile.ext
我认为我的第一个策略是使用''查找/替换所有/path/to/
。但我不知道如何删除空格后的所有字符。
你能帮忙吗?
答案 0 :(得分:5)
sed 's/ .*//' file
它不再需要了。当然,转换后的输出会显示在标准输出上。
答案 1 :(得分:2)
将其传递给cut
:
cut '-d ' -f1 yourfile
答案 2 :(得分:2)
理论上,您还可以使用awk
从每行获取文件名:
awk '{ print $1 }' input_file.log
当然,这假定任何文件名中都没有空格。 awk
默认查找空格作为字段分隔符,因此上面的代码段将从日志文件(您的文件名)中获取每行的第一个“字段”,然后输出。
答案 3 :(得分:0)
仅限bash的解决方案:
while read path otherstuff; do
echo ${path##*/}
done < filename