linux 命令行: cut (带空字段)

发布于 2024-12-06 13:16:31 字数 208 浏览 1 评论 0原文

我有一个文件(input.txt),其中的数据列由空格分隔。我想获取第 9 列及以后的数据。

通常我会这样做:

cut -d " " -f 9- input.txt

但是,在这个文件中,有时字段由多个空格分隔(并且每行/列的空格数量各不相同)。 cut 似乎没有将连续空格视为一个分隔符。

我该怎么办?

I have a file (input.txt) with columns of data separated by spaces. I want to get the 9th column of data and onwards.

Normally I would do:

cut -d " " -f 9- input.txt

However, in this file, sometimes the fields are separated by multiple spaces (and the number of spaces varies for each row / column). cut doesn't seem to treat consecutive spaces as one delimiter.

What should I do instead?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不必你懂 2024-12-13 13:16:31
sed -r 's/ +/ /g' input.txt|cut -d " " -f 9-
sed -r 's/ +/ /g' input.txt|cut -d " " -f 9-
谁对谁错谁最难过 2024-12-13 13:16:31

您可以使用 sedn 个空格替换为单个空格:

sed -r 's/\ +/\ /g' input.txt | cut -d ' ' -f 9-

只需确保列之间没有任何制表符即可。

You could use sed to replace n whitespaces with a single whitespace:

sed -r 's/\ +/\ /g' input.txt | cut -d ' ' -f 9-

Just be sure there aren't any tabs between your columns.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文