0

我有一个文件说 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 是分隔符,所以我得到了以上结果。我怎么能这样做?谢谢

4

1 回答 1

2

我了解您想B在每一行中先删除。如果是这样,这将起作用:

sed 's/B//' xyx

输出:

AC
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

输出:

ABC
ACABC
ACABCABC
于 2013-04-19T11:59:36.537 回答