实例,wise 和sdss用Topcat交叉,选All match, 1 and 2 生成表格。
wise和sdss dr8交叉的表格,col1和col2是wise坐标, col23和col24是sdss坐标。
一,想找出相同sdss源对应不同wise源的情况,即sdss坐标相同,wise坐标不同的情况。
先把文本字符对齐:
awk -F , '{printf "%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9ft%13.9fn", $1, $2, $3, $4, $5, $6, $7, $8, $9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27}' wise_dr8suniqssnochar.csv > wise_dr8suniqssnocharduiqi.csv
sort -t $'\t' -k23 -k24 wise_dr8suniqssnocharduiqi.csv | uniq -f22 -w25 -D > onesdssmultiwise.csv
sed -i 's/\t/,/g' onesdssmultiwise.csv
二,去除上述情况以后,剩下的文本数据:即wise ,sdss一一对应的情况,和一个wise对多个sdss的情况。
sort -t $'t' -k23 -k24 wise_dr8suniqssnocharduiqi.csv | uniq -f22 -w25 -u > onesdssmultiwise_rest.csv
解释:-D, --all-repeated[=delimit-method 显示所有重复的行
delimit-method={none(default),prepend,separate}
以空行为界限
-f, --skip-fields=N 比较时跳过前N 列
-s, --skip-chars=N 比较时跳过前N 个字符
-w, --check-chars=N 对每行跳过前N 列后第N 个字符以后的内容不作对照
-f22 -w25表示跳过前22列(包括第22列后的t键),之后数25个字符,第25个字符(包括第25个字符)以后的字符不计入uniq范围
https://blog.sciencenet.cn/blog-749052-589614.html
上一篇:
SDSS dr8数据的下载下一篇:
idl7.1的安装