sed 删除\t 之后行中的所有内容

标签 sed awk

我有 o/p 喜欢

19599 user  20   0  120m  32m 4260 S 14.0  5.3   3:21.13 app.out  \t Wed Jun  8 09:31:06 UTC 2011
19599 user  20   0  120m  32m 4260 S 14.0  5.4   3:21.61 app.out  \t Wed Jun  8 09:31:12 UTC 2011
19599 user  20   0  121m  32m 4260 S 12.0  5.4   3:22.31 app.out  \t Wed Jun  8 09:31:17 UTC 2011

我想删除行中从 \t 开始的所有字符。 我如何使用 sed 做到这一点?

我尝试使用 awk -F t '{print $1}' 但它将 t 从 app.out 中删除。

我想要o/p这样的

19599 user  20   0  120m  32m 4260 S 14.0  5.3   3:21.13 app.out
19599 user  20   0  120m  32m 4260 S 14.0  5.4   3:21.61 app.out
19599 user  20   0  121m  32m 4260 S 12.0  5.4   3:22.31 app.out

如果我这样写awk:

 awk -F t '{print $1"t"}'

它工作正常,但这只是一种解决方法。如何删除行中从 \t 开始到行尾的所有字符?

最佳答案

如果输出包含反斜杠和“t”这两个字符,则使用:

sed 's/ *\\t.*//'

这会删除两个字符前的空格,即反斜杠和“t”,以及它们之后的所有内容。

如果输出包含制表符,则需要用实际制表符替换 '\\t'。

关于sed 删除\t 之后行中的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6279830/

相关文章:

linux - 在 Linux 中的 sed 命令中执行 cat 命令

awk - 使用 sed 或 awk 删除倒数第三行文件

bash - 在 bash 中使用数组更改行分隔文本文件

bash - 如何在tail -f上找到键的值

Linux - 搜索文件中的文本并加入另一个文件

linux - 用 awk 比较两个 txt 文件,它们都有 4 列

bash - grep 文件中不同行的多个字符串(即整个文件,而不是基于行的搜索)?

regex - 未声明打印时将 AWK 代码行打印到我的输出文件

python - 从一个 csv 文件中的数据创建多个 csv 文件

linux - 解析 Linux 命令输出