【问题标题】:Remove everything after first character in list of names删除名称列表中第一个字符之后的所有内容
【发布时间】:2013-07-21 10:55:03
【问题描述】:

我有一个名字列表,我想将两个列表的名字和姓氏结合起来。我想删除名字中第二个字符之后的所有内容。例如: 名字

Adam
Adam
Amanda M
Amber
Ami
Amy
Amy
Amy
Amy

输出

A
A
A
A
A
A
A
A
A

【问题讨论】:

    标签: regex perl sed awk cut


    【解决方案1】:

    你在找这个吗?

    sed 's/^\(.\).*/\1/' file
    

    或者简单地说:

    grep -o '^.' file
    

    【讨论】:

      【解决方案2】:

      使用cut

      $ echo "Adam
      Adam
      Amanda M
      Amber
      Ami
      Amy
      Amy
      Amy
      Amy" | cut -c 1
      A
      A
      A
      A
      A
      A
      A
      A
      A
      

      【讨论】:

        【解决方案3】:

        使用 awk:

        awk -F '\0' '{print $1}' file
        

        或纯 BASH:

        while read l; do
           echo ${l:0:1}
        done < file
        

        【讨论】:

          【解决方案4】:

          这可能对你有用(GNU sed):

          sed 's/\B.*//' file
          

          【讨论】:

            猜你喜欢
            • 2022-08-19
            • 1970-01-01
            • 1970-01-01
            • 2015-10-23
            • 1970-01-01
            • 2012-12-03
            • 2012-11-28
            • 2022-10-06
            • 2018-03-11
            相关资源
            最近更新 更多