如何从文件中逐行获取并在 bash 上的 # 之前剪切字符串
How to get line by line from file and cut string before # on the bash
我有文件及其内容:
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
有人帮我吗?
谢谢!
试试这个。这将输出到标准输出:
awk -F# '{print }' file | awk 'NF' | sed -e 's/^/pacman -S /'
这将输出到一个新文件:
awk -F# '{print }' file | awk 'NF' | sed -e 's/^/pacman -S /' > file2
这个 awk 一行就可以完成这项工作:
awk -F'#.*' '&&[=10=]="pacman -S "' file
请注意,pacman
接受多个包,例如:
pacman -S package1 package2 package3...
试试这个
sed -e 's/#.*$//' test.in | awk '{if (NF != 0) {printf("pacman -S %s\n", [=10=])} else {print [=10=]}}'
希望对您有所帮助
首先删除所有以#
开头的行
sed 's/#.*//g;/^$/d' file1.txt > tmp.txt
现在在每行前面连接pacman -S
awk '{print "pacman -S " [=11=];}' tmp.txt > file1.txt
希望对您有所帮助
仅 sed
:
sed -n 's/#.*//; /./ s/^/pacman -S /p' inputfile
解释:
sed -n
除非指定,否则不打印
s/#.*//
删除“#”中的所有内容
/./ ... /p
只打印至少剩下一个字符的行
s/^/pacman -S /
在行首插入 "pacman -S"
pacman -Qqen > pkglist.txt
要安装:
pacman -S - < pkglist.txt
来自 ArchWiki:https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#List_of_installed_packages
我有文件及其内容:
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
有人帮我吗? 谢谢!
试试这个。这将输出到标准输出:
awk -F# '{print }' file | awk 'NF' | sed -e 's/^/pacman -S /'
这将输出到一个新文件:
awk -F# '{print }' file | awk 'NF' | sed -e 's/^/pacman -S /' > file2
这个 awk 一行就可以完成这项工作:
awk -F'#.*' '&&[=10=]="pacman -S "' file
请注意,pacman
接受多个包,例如:
pacman -S package1 package2 package3...
试试这个
sed -e 's/#.*$//' test.in | awk '{if (NF != 0) {printf("pacman -S %s\n", [=10=])} else {print [=10=]}}'
希望对您有所帮助
首先删除所有以#
sed 's/#.*//g;/^$/d' file1.txt > tmp.txt
现在在每行前面连接pacman -S
awk '{print "pacman -S " [=11=];}' tmp.txt > file1.txt
希望对您有所帮助
sed
:
sed -n 's/#.*//; /./ s/^/pacman -S /p' inputfile
解释:
sed -n
除非指定,否则不打印
s/#.*//
删除“#”中的所有内容
/./ ... /p
只打印至少剩下一个字符的行
s/^/pacman -S /
在行首插入 "pacman -S"
pacman -Qqen > pkglist.txt
要安装:
pacman -S - < pkglist.txt
来自 ArchWiki:https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#List_of_installed_packages