如何删除文本文件中第一个空格后每行中的所有字符



我有一个很大的日志文件,需要从中提取文件名。

文件如下:

/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/。但我被如何删除空格后的所有字符所困扰。

你能帮忙吗?

sed 's/ .*//' file

不需要更多时间。转换后的输出当然会出现在标准输出上。

理论上,您也可以使用awk从每一行获取文件名,如下所示:

awk '{ print $1 }' input_file.log

当然,这是假设在任何文件名中都没有空格。awk默认查找空白作为字段分隔符,因此上面的代码段将为每一行从日志文件(文件名)中获取第一个"字段",并将其输出

将其传递给cut:

cut '-d ' -f1 yourfile

仅限bash的解决方案:

while read path otherstuff; do
echo ${path##*/}
done < filename

相关内容

  • 没有找到相关文章

最新更新