所以我要拧一个需要多个文件的脚本,比较它们然后输出不同的记录。
该脚本适用于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个文件。
我知道我可以使用循环修复它,但我是这种语言的新手,并且不太熟悉语法。
感谢您的帮助:)
答案 0 :(得分:2)
使用它:
x=1
for i in "$@"
do
awk 'NR>2' $i | awk '{print $NF "\r"}' > N$x
x=$(($x+1))
done
$@
:输入参数列表
答案 1 :(得分:1)
您的awk命令可以合并:awk 'NR>2 {print $NF "\r"}' "$1" > N1
。
更好的是,一个awk命令可以处理所有文件:
awk '
FNR == 1 {output = "N" ++count}
FNR > 2 {print $NF "\r" > output}
' "$@"
"一个人要统治他们"