如何从文件中一行一行地获取数据并在#打开bash之前剪切字符串

如何从文件中一行一行地获取数据并在#打开bash之前剪切字符串,bash,git-bash,Bash,Git 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 gn

我有一个文件及其内容:

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 $1}' file | awk 'NF' | sed -e 's/^/pacman -S /'
这将输出到一个新文件:

awk -F# '{print $1}' file | awk 'NF' | sed -e 's/^/pacman -S /' > file2

此awk单衬板将完成以下工作:

awk -F'#.*' '$1&&$0="pacman -S "$1' file
请注意,
pacman
接受多个包,如:

pacman -S package1 package2 package3...
试试这个

sed -e 's/#.*$//' test.in | awk '{if (NF != 0) {printf("pacman -S %s\n", $0)} else {print $0}}'

希望这有帮助

首先删除所有以
开头的行

现在,在每一行前面都有一个concat
pacman-S

awk '{print "pacman -S " $0;}' 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
pacman-S-

来自ArchWiki:

可以在shell中以多种方式完成,您尝试过什么吗?我更喜欢bash shell!嗨:但我也想消除#之后的字符串。例如,abc#cs=>abct这是非常有用的。但这似乎不能处理“#”
pacman -S - < pkglist.txt