我是新的Lunix,我试图写一个函数,它需要3个参数输入数据,输出数据,和选定的列
功能:读取输入数据,写入并删除所选列的重复行,并保存输出数据。
如果我按命令那样做,那就成功了
cat new_trans.txt | awk -F',' '\!seen[$1]++ { print $1}' > test
bash ./shell_fn.sh testA new_trans.txt test_new_trans.txt $1
testA() {
col = $3
cat $1 | awk -F',' '\!seen[\$$col]++ { print \$$col}' > $2
cat $2 | head
}
"$@"
1条答案
按热度按时间xam8gpfp1#
我改变的事情:
1.您可以直接将文件名传递给这些命令,而不是从cat进行管道传输
1.因为我们使用单引号
'
,反斜杠是不必要的1.引用变量以避免变量中有空格时出现问题
1.声明一个变量c,它位于awk脚本中,等于col