切割命令在输出为“*”时表现不同

时间:2016-01-13 12:32:25

标签: shell awk grep cut

我正在尝试创建一个shell脚本,下面是我尝试从文件中的记录中提取某些值的部分:

public IEnumerable<MemberDTO> GetMem(String code)
{
    //Get the source object by sourceRef
    var thisSrc = db.Sources
                    .Where(s => s.sourceRef == code)
                    .SingleOrDefault();

    if(thisSrc == null)
       return Enumerable.Empty<MemberObj>();

   //Filter Members by sourceId and map the results to a MemberDTO with less fields
   var data = (from m in db.Members
               where m.sourceId == thisSrc.sourceId
               select new MemberDTO
               {
                   MemberId = m.memId,
                   //map the rest of your DTO fields..

               }).ToList();

    return data;
}

当指定的列具有某个数字或字符串值时,这非常有效,但当列的值为tgt_val=cat $file_name | grep "$string_name" | cut -d"|" -f$column_no 时,它会失败,例如:

*

此命令适用于第1,2和2列; 4

但是在第3列的情况下,它会将输出作为当前目录中的所有文件。

有人请帮忙解决这个问题。

1 个答案:

答案 0 :(得分:0)

我的$ tgt_val出了问题。当我将值回显为echo&#34; $ tgt_val&#34;