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搜索,但它不起作用。