如何在sed的列中获取字符串?

时间:2019-08-13 00:56:56

标签: sed

我有一个文本文件,其中的单词由制表符分隔。某些行在第二栏中可能没有单词,第三行也没有。如何在sed的第二列和第三列中获取单词(如果存在的话)?

abc   cde   def
abc         his
abc   rat

如何获取cde和def?他的?老鼠?

这就是我尝试过的

sed 's/^.*\([^\t]\)$/\1/'

但我的输出为空

4 个答案:

答案 0 :(得分:2)

保持简单

sed 's/^[^\t]*\t//' table.txt

用下面的\t字符替换第一列,并使用一个空字符串。 这将仅产生相关列。

答案 1 :(得分:0)

console.log('http://www.google.com?q=' + encoded)

答案 2 :(得分:0)

处理1列,4列等的Sed答案:

sed -E 's/[^\t]*(\t|$)//;s/(([^\t]*(\t|$)){1,2}).*/\1/'

删除第一列,也许只有一列。修剪剩下的第一和第二列。

这很大程度上是awkcut的问题。

在perl中,是这样的:perl -lne 'print join "\t", (split /\t/)[1..2]'

答案 3 :(得分:0)

您可以使用sed实现此目的,但只需使用cut提供一种更简单的方法

cut -d$'\t' -f'2,3' table.txt

# or
# Press Ctrl+V and then Tab when entering delimiter character

cut -d' ' -f'2-3' table.txt