AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题

问题[xargs](ubuntu)

Martin Hope
Broadsworde
Asked: 2020-05-10 20:44:16 +0800 CST

如何计算由空字符分隔的文件,如返回的那样;寻找 。-type f -print0?

  • 0

摘自man find:

-print0

真的; 在标准输出上打印完整的文件名,后跟一个空字符(而不是 -print 使用的换行符)。这允许处理查找输出的程序正确解释包含换行符或其他类型空格的文件名。此选项对应于 xargs 的 -0 选项。

因此,如果(例如)您想在目录中查找并丢弃比最新 10 个旧的文件,您可以使用(信用 @pLumo):

find . -maxdepth 1 -type f -print0 | sort -rz | sed -z 1,10d | xargs -0 gio trash

但是,您将如何计算在此命令之前将被丢弃的文件数量?

find 20.04 xargs
  • 3 个回答
  • 215 Views
Martin Hope
Broadsworde
Asked: 2020-05-09 23:23:02 +0800 CST

删除目录中最旧的文件时出错。(与 xargs 一起使用时出现 gio 垃圾错误)

  • 0

在18.04中,我能够在以下目录中找到并丢弃除最新的n 个(例如 8 个)文件之外的所有文件:

find . -maxdepth 1 -type f | sort -r | sed 1,8d | xargs -d \n gio trash

当我在新安装的20.04中尝试此操作时,出现错误:

gio: file:///path/to/file.txt%0A: Error moving file /path/to/file.txt
 to the Rubbish Bin: No such file or directory

我可以使用以下方法手动删除同一个文件而不会出错:

gio trash file.txt

升级后我缺少什么?

command-line 20.04 xargs
  • 1 个回答
  • 99 Views
Martin Hope
arash deilami
Asked: 2020-01-14 18:16:59 +0800 CST

如何使用 xargs 传递要由 grep 搜索的名称列表?

  • 10

我有一个包含名称(nameslist.txt_catxargsgrepgreptargetfile.txt

假设targetfile.txt包含大量名称,其中一些名称可能包含在nameslist.txt.

我应该在下面的xargsandgrep之间添加什么?grep./targetfile.txt

cat ./nameslist.txt | xargs grep ./targetfile.txt

谢谢

command-line grep text-processing xargs
  • 1 个回答
  • 3564 Views
Martin Hope
Коля
Asked: 2019-12-03 07:15:11 +0800 CST

从作者列表生成 url 列表的脚本

  • 0

我需要列出作者姓名,其中可能包含 1 到 4 个这样的词

Osho
Hartmann Nicolai
Bird Robert Montgomery
Coates Ta-Nehisi

并生成这样的 URL

site.com/word1+word+word3+word4

如果我这样做

< list.txt xargs -l | xargs printf '"site.com/%s\n' > url.txt 

它会接受一个词。我的问题是如何添加另外 3 个可选参数,例如%s?或者也许有其他命令更简单的方法?

xargs
  • 4 个回答
  • 72 Views
Martin Hope
Rakib Fiha
Asked: 2019-11-25 06:47:49 +0800 CST

如何使 xargs 并行执行但一次显示单个实例的完整输出?

  • 2

我在远程主机xargs中并行运行一些查询命令,这些命令运行效率很高,但是我在查找从哪个主机获取查询时遇到了一些问题。

现在正在执行此操作的脚本部分看起来完全像这样:

export commands="cmd1; cmd2; "
hosts=("host1" "host2" "host3" "host4")
MaxInstance=10
echo_var(){
   echo "Executing in $1:"; sleep 1; echo "Output of: $commands"; return 0;
}
export -f echo_var
printf "%s\n" ${hosts[@]} | xargs -n 2 -P $MaxInstance -I {} $(command -v bash) -c 'echo_var "$1"' _ {}

由于以下原因,它应该输出如下sleep 1:

Executing in host1:
Executing in host2:
Executing in host3:
Executing in host4:
Output of: cmd1; cmd2; 
Output of: cmd1; cmd2; 
Output of: cmd1; cmd2; 
Output of: cmd1; cmd2;

为了实现可能看起来类似于最后显示的输出,我必须将现有函数编辑为以下内容以更接近我想要的。但即使在这里,如果我使用printf "%s\n%s" "$name" "$output",它有时会在新行中断。例如:

echo_var(){
 name="Executing in $1:"; sleep 1; output="Output of: $commands";
 echo -e "$name: $output" ## will work
 # echo -e "$name\n$output" ## will not work or even
 # printf "%s\n%s" "$name" "$output" ## will not work
 return 0;
}

在不牺牲并行执行速度的情况下,我希望得到如下输出。是否有任何选项xargs可以指定一次显示整个实例的输出?

Executing in host1:
Output of: cmd1; cmd2;
Executing in host2:
Output of: cmd1; cmd2;
Executing in host3:
Output of: cmd1; cmd2;
Executing in host4: 
Output of: cmd1; cmd2; 
scripts bash xargs
  • 1 个回答
  • 1532 Views
Martin Hope
Jaro
Asked: 2019-11-13 04:20:45 +0800 CST

将 .zip 文件解压缩到所有包含 .php 文件的目录,其中包含文本“house”?

  • 2

如何将 .zip 文件解压缩到所有包含 .php 文件的目录,其中包含文本“house”?

就像是:

grep -rl --include='index.php' 'house' /directory/path/of_the_index_file* | xargs unzip /directory2/path/file.zip -d /directory/path/of_the_index_file/

澄清:我只是想将一个包含 2 个文件和一个目录的简单 .zip 文件提取到服务器上包含 index.php 文件的所有目录,该文件的代码中包含特定的字符串。

我将非常感谢任何帮助。

grep unzip xargs
  • 1 个回答
  • 270 Views
Martin Hope
Andrew Williams
Asked: 2019-08-10 11:19:52 +0800 CST

删除文件名中不包含主机名的某些文件类型

  • 3

我正在为每个站点的多台机器进行文件部署,因此将所有文件压缩一次并部署到每台机器要容易得多。但是我想删除所有其他 PC 的配置。

zip 包含各种通用文件,以及每台机器的特定配置。

例如,较少的 zip 将提供:

generic1.xjson
generic2.xjson
generic3.xjson
generic1.yjson
generic2.yjson
PC-1-1.json
PC-1-2.json
PC-1-3.json

因此,我希望删除每个不包含 PC 主机名的 PC-1-*.json。

(PC 主机名总是正好是 PC-1-1 等)

我试图按照以下方式做一些事情:

ls -1 | grep -v *$hostname* | xargs -0 rm *PC-*-*.json

这将删除所有文件,包括当前主机名的文件。

寻找我在这方面有什么问题,或者是否有更好的方法来执行此功能。

uninstall bash files hostname xargs
  • 1 个回答
  • 52 Views
Martin Hope
Moobie
Asked: 2019-07-15 21:52:17 +0800 CST

xargs: 无效选项 -- 'o'

  • 4

我试图执行此命令来修复另一个错误(无法使用 TTY - 输入不是终端或正确的文件类型):

kubectl get pods -n foobar | grep baz | awk '{print $1}' | xargs -J % kubectl exec -it -n foobar % /bin/bash

这导致了以下错误:

xargs: invalid option -- 'o'

我能够在我的 Mac Mojave 上正确执行该命令,但在 Ubuntu 16.04 上却不行。

根据xargs 网站,应该有一个 -o 选项:

--open-tty

-o

在执行命令之前,在子进程中将 stdin 作为 /dev/tty 重新打开,从而允许该命令与终端相关联,而 xargs 从不同的流(例如管道)读取。如果您希望 xargs 运行交互式应用程序,这将很有用。

grep -lz 模式 * | xargs -0o vi

但是man xargs没有显示这个选项。

更改日志没有提到对标志的任何更改。

我在 Ubuntu 16.04 LTS 上的 xargs 版本:

xargs (GNU findutils) 4.7.0-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Eric B. Decker, James Youngman, and Kevin Dalley.
command-line tty kubernetes xargs
  • 1 个回答
  • 1499 Views
Martin Hope
Phil
Asked: 2018-09-06 01:08:37 +0800 CST

如何列出第一行为空行的所有文件

  • 0

我想找到所有以空行作为文件第一行的 Java 文件。我有以下内容,它只是将每个文件的第一行(和文件名)输出到输出文件“fileList.txt”中:

find . -name *java | xargs head -n1 > fileList.txt

但是,我需要对“fileList.txt”进行后处理以找到空文件名。

如何向 xargs 添加“if”条件,以便仅在第一行为空白时输出文件名?

command-line bash xargs
  • 2 个回答
  • 1540 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve