我有文件及其内容:
gnome-tweak-tool #(Cinnamon does not support)
gnome-system-monitor
gnome-calculator
gedit
nomacs gimp #(viewer and editor for image)
#aa
#bb
与“ pacman”的命令合并后。 我想要像这样的输出:
pacman -S gnome-tweak-tool
pacman -S gnome-system-monitor
pacman -S gnome-calculator
pacman -S gedit
pacman -S nomacs gimp
有人帮我吗? 谢谢!
答案 0 :(得分:2)
此awk单线将完成此工作:
awk -F'#.*' '$1&&$0="pacman -S "$1' file
请注意,pacman
接受多个包,例如:
pacman -S package1 package2 package3...
答案 1 :(得分:1)
尝试一下。这将输出到stdout:
awk -F# '{print $1}' file | awk 'NF' | sed -e 's/^/pacman -S /'
这将输出到一个新文件:
awk -F# '{print $1}' file | awk 'NF' | sed -e 's/^/pacman -S /' > file2
答案 2 :(得分:0)
尝试一下
sed -e 's/#.*$//' test.in | awk '{if (NF != 0) {printf("pacman -S %s\n", $0)} else {print $0}}'
希望这会有所帮助
答案 3 :(得分:0)
首先删除所有以<listener>
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
开头的行
repositories {
['<url1>', '<url2>'].each { u ->
maven {
url u
credentials {
username = "<username>"
password = "<password>"
}
}
}
}
现在,每行前面有concat #
sed 's/#.*//g;/^$/d' file1.txt > tmp.txt
希望这对您有帮助
答案 4 :(得分:0)
sed
:
sed -n 's/#.*//; /./ s/^/pacman -S /p' inputfile
说明:
sed -n
除非指定,否则不打印
s/#.*//
从“#”中删除所有内容
/./ ... /p
仅打印至少在char左边的行
s/^/pacman -S /
在行首插入“ pacman -S”
答案 5 :(得分:0)
pacman -Qqen > pkglist.txt
要安装:
pacman -S - < pkglist.txt
从ArchWiki:https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#List_of_installed_packages