在单独的文件中获取列输出

在单独的文件中获取列输出

我有一个文件,其内容如下:

abc=123|qwer=432|reiw=2344|xyz=123 445|tyu=23 rows

我尝试过使用trsed但我需要使用awk

所需的输出应如下所示:

file2:
123|432|2344|123 445|23 rows

答案1

perl -F'=|\|' -pe '$_ = join "|", grep { $k++ % 2 } @F'

sed -e 's/[^=|]*=//g'

答案2

刚刚尝试过这个sed

sed 's/[a-z,=]//g' | sed 's/$/rows/'

也就是说,删除“a”和“z”之间的任何字符以及“=”。之后,在末尾添加“行”。

这只用您的示例行进行了测试,如果您的文件中存在其他变体,那么它可能无法工作。

另一种awk获取“=”和“|”之间所有值的方法:

awk '$0=$2' FS=\= RS='|' ORS="|" | head -1

我不得不管道,head因为它打印了最后一个“|”预期输出之后的第二行中的字符。

相关内容