Scripting 使用awk排除字符

Scripting 使用awk排除字符,scripting,sed,awk,Scripting,Sed,Awk,我试图找到一种方法来排除文件中的数字,当我输入ti时,但我只想排除打印$1上的数字,我想保留单词前面的数字。我有一些我认为可能有用的东西,但没有给我想要的。我还展示了一个文件的示例。文件由管道分隔 cat files | awk -F '|' ' {print $1 "\t" $2}' |sed 's/0123456789//g' 输入: b1ark45 | dog23 | brown m2eow66| cat24 |yellow h3iss67 | snake57 | green 输出

我试图找到一种方法来排除文件中的数字,当我输入ti时,但我只想排除打印$1上的数字,我想保留单词前面的数字。我有一些我认为可能有用的东西,但没有给我想要的。我还展示了一个文件的示例。文件由管道分隔

cat files  | awk -F '|' ' {print $1 "\t" $2}' |sed 's/0123456789//g'
输入:

b1ark45 | dog23 | brown
m2eow66| cat24 |yellow
h3iss67 | snake57 | green
输出

 b1ark dog23    
 m2eow cat24    
 h3iss nake57
试试这个:

awk -F'|' -v OFS='|' '{gsub(/[0-9]/,"",$1)}7'  file
您的示例的输出将是:

bark | dog23 | brown    
meow| cat24 |yellow    
hiss | snake57 | green
编辑

这将输出col1(无结束数字和空格)和col2,由

这可能适用于您(GNU-sed):


这确实有效,但我需要保留单词前面的数字。我只想排除打印$1上的数字,我想保留单词前面的数字。对不起,我应该声明,从一开始,这个
awk-F'|'-v OFS='|'{sub(/[0-9]+$/,'',$1)}1'文件
@user2607210 jaypal的解决方案对您有用吗?是否也要保留结尾空间?请为您的输入添加一个输出示例。这样我们就可以看到你真正期望的是什么。我已经为我正在寻找的东西添加了一个输出。Jaypal的解决方案几乎可以工作,但我不需要第三个字段,iti给了我第三个字段。丢掉猫(google UOOC)。awk可以很好地打开文件。
kent$  echo "b1ark45 | dog23 | brown
m2eow66| cat24 |yellow
h3iss67 | snake57 | green"|awk -F'|' -v OFS='\t' '{gsub(/[0-9]*\s*$/,"",$1);print $1,$2}'
b1ark    dog23 
m2eow    cat24 
h3iss    snake57
sed -r 's/[0-9]*\s*\|\s*(\S*).*/ \1/' file