所以我编写了一个脚本,它需要几个文件,比较它们,然后输出不同的记录。
该脚本对3个参数(3个文件)运行良好,但我很难使参数变化。
假设脚本名为Test。
如果我编写:Test 1.txt 2.txt,脚本将知道我有2个输入,即2个文件,并将它们进行比较并给出输出。
此外,如果我编写Test 1.txt 2.txt 3.txt,脚本将知道我有3个输入,即3个文件,比较它们并给出输出。
该脚本现在有以下命令:
awk 'NR>2' ${1} | awk '{print $NF "\r"}' > N1
awk 'NR>2' ${2} | awk '{print $NF "\r"}' > N2
awk 'NR>2' ${3} | awk '{print $NF "\r"}' > N3这对3个文件很好,但问题是,有时我有2个文件,有时我有4个文件。
我知道我可以用循环来修复这个问题,但是我对这种语言并不熟悉,对语法也不太熟悉。
(谢谢你的帮助:)
发布于 2014-07-23 10:03:18
用这个:
x=1
for i in "$@"
do
awk 'NR>2' $i | awk '{print $NF "\r"}' > N$x
x=$(($x+1))
done$@:输入参数列表
发布于 2014-07-23 10:54:41
您的awk命令可以组合在一起:awk 'NR>2 {print $NF "\r"}' "$1" > N1。
更好的是,只需使用一个awk命令来处理所有文件:
awk '
FNR == 1 {output = "N" ++count}
FNR > 2 {print $NF "\r" > output}
' "$@"“一只鹰来统治他们所有人”
https://stackoverflow.com/questions/24906235
复制相似问题