我想启用此文件中的所有apt存储库
cat /etc/apt/sources.list ## Note, this file is written by cloud-init on first boot of an instance ## modifications made here will not survive a re-bundle. ## if you wish to make changes you can: ## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg ## or do the same in user-data ## b.) add sources in /etc/apt/sources.list.d # # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick main deb-src http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick main ## Major bug fix updates produced after the final release of the ## distribution. deb http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick-updates main deb-src http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick-updates main ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick universe deb-src http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick universe deb http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick-updates universe deb-src http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. # deb http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick multiverse # deb-src http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick multiverse # deb http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick-updates multiverse # deb-src http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick-updates multiverse ## Uncomment the following two lines to add software from the 'backports' ## repository. ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. # deb http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse # deb-src http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ maverick-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu maverick partner # deb-src http://archive.canonical.com/ubuntu maverick partner deb http://security.ubuntu.com/ubuntu maverick-security main deb-src http://security.ubuntu.com/ubuntu maverick-security main deb http://security.ubuntu.com/ubuntu maverick-security universe deb-src http://security.ubuntu.com/ubuntu maverick-security universe # deb http://security.ubuntu.com/ubuntu maverick-security multiverse # deb-src http://security.ubuntu.com/ubuntu maverick-security multiverse
使用sed,这是一种简单sed -i 's/^# deb/deb/' /etc/apt/sources.list的方法,最优雅(“ pythonic”)的方法是什么?
sed -i 's/^# deb/deb/' /etc/apt/sources.list
massedit.py(http://github.com/elmotec/massedit)为您做脚手架,只留下正则表达式来编写。它仍处于测试阶段,但我们正在寻找反馈。
python -m massedit -e "re.sub(r'^# deb', 'deb', line)" /etc/apt/sources.list
将以diff格式显示差异(之前/之后)。
添加-w选项以将更改写入原始文件:
python -m massedit -e "re.sub(r'^# deb', 'deb', line)" -w /etc/apt/sources.list
或者,您现在可以使用api:
>>> import massedit >>> filenames = ['/etc/apt/sources.list'] >>> massedit.edit_files(filenames, ["re.sub(r'^# deb', 'deb', line)"], dry_run=True)