Shell 从线条中剪切第一个出现的图案

Shell 从线条中剪切第一个出现的图案,shell,unix,Shell,Unix,我有一个文件,说abc包含如下记录: $cat xyz ABC ABCABC ABCABCABC 我想剪切第一个图案,所以结果应该是: AC ACABC ACABCABC 我尝试使用awk切割图案,如: $ cat xyz|awk -F 'B' '{print $1,$2}' A CA A CA A CA 当然,B是除沫剂,所以我得到了以上的结果。我怎么能这么做? 谢谢我知道您想先删除每行中的B。如果是这样,这将起作用: sed 's/B//' xyx 输出: A

我有一个文件,说abc包含如下记录:

$cat xyz
    ABC
    ABCABC
    ABCABCABC
我想剪切第一个图案,所以结果应该是:

AC
ACABC
ACABCABC
我尝试使用awk切割图案,如:

$ cat xyz|awk -F 'B' '{print $1,$2}'
A CA
A CA
A CA
当然,B是除沫剂,所以我得到了以上的结果。我怎么能这么做?
谢谢

我知道您想先删除每行中的
B
。如果是这样,这将起作用:

sed 's/B//' xyx
输出:

AC
ACABC
ACABCABC
ABC
ACABC
ACABCABC
如果要替换文件,请添加
-i

sed -i 's/B//' xyx

我看到你了-注意,你必须更新你的答案或写在评论中

谢谢,如果我有一个案件,我想删除第一个模式 仅当我有多个重复模式时,如:

$cat xyz
ABC
ABCABC
ABCABCABC
输出应为:

ABC
ACABC
ACABCABC
$cat xy
这可能是一种方法:

while read line
do
  if [ `echo $line | grep -o "B" | wc -l` -ge 2 ]
  then
     echo $line | sed 's/B//'
  else
     echo $line
  fi
done < xyz