Linux 如何在终端中从grep中剥离列
当我运行命令时Linux 如何在终端中从grep中剥离列,linux,grep,Linux,Grep,当我运行命令时 history | grep“apt get install” 它返回以下文本 243 sudo apt-get install ntfs-3g 280 sudo apt-get install weavedconnectd 329 sudo apt-get install foremost 336 sudo apt-get install nbtstat -y 357 sudo apt-get install dnsmasq 372 sudo
history | grep“apt get install”
它返回以下文本
243 sudo apt-get install ntfs-3g
280 sudo apt-get install weavedconnectd
329 sudo apt-get install foremost
336 sudo apt-get install nbtstat -y
357 sudo apt-get install dnsmasq
372 sudo apt-get install debian-zfs
373 sudo apt-get install raspbian-zfs
374 sudo apt-get install zfs
434 sudo apt-get install hfsplus hfsutils hfsprogs -y
447 sudo apt-get install hfsprogs
703 sudo apt-get install xrdp
733 sudo apt-get install tightvncserver
1126 sudo apt-get install lcdproc
1151 sudo apt-get install webalizer
1152 sudo apt-get install webalizer -yf
1213 sudo apt-get install python-pip
1214 sudo apt-get install python-dev
而我只想从sudo uphill得到包裹名。i、 e数字的条带。因此,将来如果我必须安装这些软件包,我可以直接将保存的文件中的文本复制粘贴到shell。您可以混合使用sed和cut来去除空白并选择所需的字段
history | grep“apt get install”| sed's/^*/“| cut-d'-f3-
sed命令将从历史输出中拉出前导空格,cut将输出拆分为列,允许您仅选择命令。您可以混合使用sed和cut来去除空格,并选择所需的字段
history | grep“apt get install”| sed's/^*/“| cut-d'-f3-
sed命令将从历史记录输出中拉出前导空格,cut将输出拆分为列,允许您仅选择命令。您可以将输出通过管道传输到sed并去除不需要的部分,如下所示:
history | grep "apt-get install" | sed 's/^\s*[[:digit:]]\+\s*//'
sed正则表达式将匹配:
^
:在每行的开头\s*
:任意数量的空格字符,后跟[[:digit:]\+
:一个或多个数字,后跟\s*
任意大小的空格(渴望)您可以通过管道将输出传输到sed并剥离不需要的部分,如下所示:
history | grep "apt-get install" | sed 's/^\s*[[:digit:]]\+\s*//'
sed正则表达式将匹配:
^
:在每行的开头\s*
:任意数量的空格字符,后跟[[:digit:]\+
:一个或多个数字,后跟\s*
任意数量的空格(渴望)请参见:历史| grep'apt get install'| cut-d'-f5-
请参见:历史| grep'apt get install'| cut-d'-f5-
但我试图使用--exclude标志排除历史的旧grep,但似乎不起作用,你能更新你的答案吗?我不确定你的确切意思,但也许是一个反向匹配来过滤掉你的grep命令?e、 g.grep-v“^grep”
我认为顶层注释也是一个很好的解决方案。我想使用-v标志排除结果中以前的所有grep搜索,但它不起作用。但我尝试使用--exclude标志排除历史上的旧grep,但似乎不起作用,你能更新你的答案吗?我不确定你的确切意思,但也许是一个反向匹配来过滤掉你的grep命令?e、 g.grep-v“^grep”
我认为顶层注释也是一个很好的解决方案。我想使用-v标志在结果中排除所有以前的grep搜索,但它不起作用。