我有一个包含所有内容的列表:
1:NetworkManager-0.9.9.0-28.git20131003.fc20.x86_64
avahi-0.6.31-21.fc20.x86_64
2:irqbalance-1.0.7-1.fc20.x86_64
abrt-addon-kerneloops-2.1.12-2.fc20.x86_64
mdadm-3.3-4.fc20.x86_64
我需要删除N:但保留其余字符串。
试过了:
cat service-rpmu.list | sed -ne "s/#[#:]\+://p" > end.list
cat service-rpmu.list | egrep -o '#[#:]+' > end.list
都会产生一个空的end.list
//* the N:, just denotes an epoch version */
答案 0 :(得分:1)
使用sed
:
sed 's/^[0-9]\+://' your.file
输出:
NetworkManager-0.9.9.0-28.git20131003.fc20.x86_64
avahi-0.6.31-21.fc20.x86_64
irqbalance-1.0.7-1.fc20.x86_64
abrt-addon-kerneloops-2.1.12-2.fc20.x86_64
mdadm-3.3-4.fc20.x86_64
顺便说一句,您的列表看起来像是带有选项-n
的grep命令的输出。如果是这样,那么在那里省略-n
选项。此外,您可以使用单个sed
命令完成整个任务。
答案 1 :(得分:1)
awk -F: '{ sub(/^.*:/,""); print}' sample
答案 2 :(得分:1)
以下是awk
的另一种方式:
awk -F: '{print $NF}’ service-rpmu.list