从.dat文件读取时如何消除除必需数字以外的所有内容?

时间:2016-07-25 10:08:02

标签: linux unix sh

我有a .dat个文件包含数据:

 count ------- 234 (1 row)

我想检索唯一的234作为整数,并希望存储在Shell脚本文件中的变量中。

我使用了以下命令:

WORKFLOW_STATUS_COUNT=`cat status_count.dat | tr -d " "`

但它的输出为:

count ------- 234 (1 row)

但预计是234整数值。

2 个答案:

答案 0 :(得分:4)

您可以使用:

WORKFLOW_STATUS_COUNT=`cat status_count.dat | cut -d" " -f 3 `

cut将行与spacebar分隔符分开,然后仅选择第三列

如果文件来自Windows来源,您可以尝试使用dos2unix

WORKFLOW_STATUS_COUNT=`cat status_count.dat | dos2unix | cut -d" " -f 3 `

答案 1 :(得分:0)

您可以使用while read子句来获取结果。这仅适用于数据列始终一致的情况。例如。如果您的数据列与此count 258 (1 row)'(continuing space between count and 258)类似,则无效。

While read count_var hyphen your_var other; do
    echo $your_var
    Do_something
Done < filename.dat