Linux命令xargs n的使用指南 (linux xargs -n)
在Linux操作系统中,xargs命令是一个非常好用的命令行工具。它的主要作用是用来把stdin中的一些参数转换成命令行参数。除此之外,xargs命令还支持一些参数,其中一个非常有用的参数就是n。本文将针对该参数展开详细的使用指南。
1. n参数的基本用法
先来看一下n参数的基本用法。n参数用于指定每行输入的参数个数,这个参数个数可以是数字,也可以是百分号(%)。如果指定的是数字,就表示每行输入的参数个数是固定的;如果指定的是百分号,则表示每行输入的参数个数是不固定的,而是按照空格分隔的单词数来计算。
下面是一个使用n参数的例子:
$ echo “1 2 3 4 5 6 7 8 9 10” | xargs -n 3 echo
这条命令的意思是:将”1 2 3 4 5 6 7 8 9 10″这个字符串作为参数传递给xargs命令,然后指定每行输入3个参数,最后将这3个参数传递给echo命令进行输出。因为原字符串中有10个数字,所以最后输出的结果会被分为4行,每行包含3个数字:
1 2 3
4 5 6
7 8 9
同样的,如果我们将-n参数设置为2,则每行输入的参数个数就变成了2:
$ echo “1 2 3 4 5 6 7 8 9 10” | xargs -n 2 echo
这条命令的输出结果如下:
1 2
3 4
5 6
7 8
9 10
2. n参数的高级用法
上面的例子仅仅是n参数的基本用法,但是,我们还可以利用n参数来实现一些高级的功能。如果我们将-n参数设置为0,那么每次输入的参数个数就是尽可能多的,直到达到更大值或者stdin输入结束:
$ echo “1 2 3 4 5 6 7 8 9 10” | xargs -n 0 echo
这条命令的输出结果如下:
如果我们在n的后面加上一个“%”符号,则表示输入的参数要根据空格进行分割:
$ echo “1 2 3 4 5 6 7 8 9 10” | xargs -n 2% echo
这条命令的输出结果与上面的命令相同:
1 2
3 4
5 6
7 8
9 10
接下来,如果我们将-n参数设置为负数,那么表明将所有的参数作为一行输入:
$ echo “1 2 3 4 5 6 7 8 9 10” | xargs -n -1 echo
这条命令的输出结果如下:
1 2 3 4 5 6 7 8 9 10
我们还可以使用xargs命令来调用shell命令,这个命令可以被称为“shell命令调用器”。例如,我们可以使用find命令来查找文本文件,然后使用xargs命令来修剪这些文件的尾部:
$ find /path -type f -name “*.txt” | xargs -n 1 sed -i ‘$ d’
这条命令的意思是:先使用find命令查找/path目录下的所有文本文件,然后使用xargs命令将每个文件名传递给sed命令,将文件的尾部修剪掉。
3. 小结
xargs命令是Linux操作系统中非常有用的命令行工具之一,它的n参数可以用于指定每行输入的参数个数,支持多种灵活的用法,包括数量可变、数量固定以及负数等。同时,xargs命令还可以结合其他命令,实现更加高级的功能。尽管xargs命令看起来比较难懂,但仔细学习它的用法还是有很大的收获的。