如何使用保留空格从管道(|)分隔文件中读取字段

时间:2018-06-06 11:06:24

标签: bash awk pipe

我希望从管道分隔文件中提取2个名称,如下所示,

1|1234|first name|2|56768|second      name   |message

我的代码如下所示,

cat $file_name|while read row; do
name1=`echo $row | awk -F\| '{ print $3 }'`
name2=`echo $row | awk -F\| '{ print $6 }'`
echo name1 is $name1
echo name2 is $name2

我面临的问题是上面的代码是删除实际数据中的多个空格并删除尾随空格。

我需要拥有数据,例如如果原始数据中有多个空格,它应该在数据中保留多个空格。

任何人都可以建议我如何提取name1和name2,如上所述保留数据中的空格?

如果通过while循环或awk读取字段不是很好的方法那么你可以建议替代方式或perl脚本方式而不是bash ??

0 个答案:

没有答案