집 >운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 xargs 명령 기술의 다양한 사용에 대한 자세한 설명
xargs는 매개변수를 명령에 전달하기 위한 filter이자 여러 명령을 결합하는 도구이기도 합니다. 다음 글은 linux에서 xargs 명령어 사용에 대한 관련 정보를 주로 소개하는데, 필요한 친구들이 참고할 수 있습니다.
머리말
xargs 명령은 수신된 데이터를 다시 포맷한 후 다른 명령에 매개변수로 제공합니다. 다음은 xargs 명령의 다양한 사용 방법을 살펴보겠습니다.
1. 여러 줄 입력을 한 줄 입력으로 변환:
[root@host1 test]# echo -e "1 2 3 4 5 \n6 7 8 \n9 10 11 12" >example.txt [root@host1 test]# cat example.txt 1 2 3 4 5 6 7 8 9 10 11 12 [root@host1 test]# cat example.txt |xargs 1 2 3 4 5 6 7 8 9 10 11 12
한 줄 입력을 여러 줄 출력으로 변환:
[root@host1 test]# cat example.txt | xargs -n 3 1 2 3 4 5 6 7 8 9 10 11 12
변환을 위한 구분 기호를 사용자 정의합니다(기본 구분 기호는 공백입니다):
[root@host1 test]# echo "Hello:Hello:Hello:Hello" | xargs -d : -n 2 Hello Hello Hello Hello
2. 스크립트에서 사용하세요:
[root@host1 test]# cat echo.sh #!/bin/bash echo $* '^-^'
매개변수가 echo.sh
에 전달되면 다음 매개변수가 인쇄되고 "^-^"로 끝납니다. echo.sh
后,它会将这些参数打印出来,并且以"^-^"作为结尾:
[root@host1 test]# echo -e "Tom\nHarry\nJerry\nLucy" > args.txt [root@host1 test]# cat args.txt | xargs bash echo.sh Tom Harry Jerry Lucy ^-^ [root@host1 test]# cat args.txt | xargs -n 2 bash echo.sh Tom Harry ^-^ Jerry Lucy ^-^
在上面的例子中,我们把参数源都放入args.txt文件,但是除了这些参数,我们还需要一些固定不变的参数,比如:
[root@host1 test]# bash echo.sh Welcome Tom Welcome Tom ^-^
在上述命令执行过程中,Tom是变量,其余部分为常量,我们可以从"args.txt"中提取参数,并按照下面的方式提供给命令:
[root@host1 test]# bash echo.sh Welcome Tom [root@host1 test]# bash echo.sh Welcome Herry [root@host1 test]# bash echo.sh Welcome Jerry [root@host1 test]# bash echo.sh Welcome Lucy
这时我们需要使用xargs中-I命令:
[root@host1 test]# cat args.txt | xargs -I {} bash echo.sh Welcome {} Welcome Tom ^-^ Welcome Harry ^-^ Welcome Jerry ^-^ Welcome Lucy ^-^
-I {} 指定替换字符串,对于每一个命令参数,字符串{}都会被从stdin读取到的参数替换掉,
使用-I的时候,命令以循环的方式执行,如果有4个参数,那么命令就会连同{}一起被执行4次,在每一次执行中{}都会被替换为相应的参数。
三、结合find使用
xargs和find是一对非常好的组合,但是,我们通常是以一种错误的方式运用它们的,比如:
[root@host1 test]# find . -type f -name "*.txt" -print | xargs rm -f
这样做是有危险的,有时会删除不必删除的文件,如果文件名里包含有空格符(' '),则xargs很可能认为它们是定界符(例如,file text.txt会被xargs误认为file和text.txt)。
如果我们想把find的输出作为xargs的输入,就必须将-print0与find结合使用以字符null('
위 내용은 Linux에서 xargs 명령 기술의 다양한 사용에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!