我有一个被程序搞砸了的文件,现在每一行看起来像这样:
somelongstring:number number number number ... a lot more columns
(制表符分隔) 我需要做的是修改每一行,如果第一列的格式为 somelengthystring:number,则将其更改为数字(去掉字符串和冒号)
我知道我可以在 awk 中使用 split 来去掉字符串和冒号,例如:
awk '{
split($1,array,":")
}
END{
print array[2],$2,$3...
}'
但问题是我不想要第一列。我想要整行,只希望修复第一列。唯一的问题是有太多的列,以至于输入 $2、$3... 一直到 $35 或其他任何东西是相当愚蠢的。什么是解决此问题的更好方法?
最佳答案
使用 sed
。删除从行首 (^
) 到第一个冒号的所有字符。
sed 's/^[^:]*://' infile
关于linux - Bash:如何更改文件的第一列并且仅更改第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15348852/