#!/bin/bash
# ideone boilerplate - we can't write files in the home directory;
# so create a temporary directory for our files instead
t=$(mktemp -d -t ideone.XXXXXXXXXXXX) || exit
trap 'rm -rf "$t"' ERR EXIT
cd "$t"
cat <<\_ >gene_list
ccl5
cxcr4
setx
_
tr , '\t' <<\_ >original_file.txt
ccl4,3,18000,50000
ccl5,4,400,5000
cxcr4,5,300,2500
apoe,4,100,90
setx,3,200,1903
_
awk -F '\t' ' FILENAME=="gene_list" {arr[$1]; next}
$1 in arr { x=sprintf("%1.0f", $3-($4/10)); if (x<0) x=0; print $1, $2, x, $4; next }
1' gene_list original_file.txt
IyEvYmluL2Jhc2gKCiMgaWRlb25lIGJvaWxlcnBsYXRlIC0gd2UgY2FuJ3Qgd3JpdGUgZmlsZXMgaW4gdGhlIGhvbWUgZGlyZWN0b3J5OwojIHNvIGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgZm9yIG91ciBmaWxlcyBpbnN0ZWFkCnQ9JChta3RlbXAgLWQgLXQgaWRlb25lLlhYWFhYWFhYWFhYWCkgfHwgZXhpdAp0cmFwICdybSAtcmYgIiR0IicgRVJSIEVYSVQKY2QgIiR0IgoKCmNhdCA8PFxfID5nZW5lX2xpc3QKY2NsNQpjeGNyNApzZXR4Cl8KCnRyICwgJ1x0JyA8PFxfID5vcmlnaW5hbF9maWxlLnR4dApjY2w0LDMsMTgwMDAsNTAwMDAKY2NsNSw0LDQwMCw1MDAwCmN4Y3I0LDUsMzAwLDI1MDAKYXBvZSw0LDEwMCw5MApzZXR4LDMsMjAwLDE5MDMKXwoKCmF3ayAtRiAnXHQnICcgRklMRU5BTUU9PSJnZW5lX2xpc3QiIHthcnJbJDFdOyBuZXh0fQokMSBpbiBhcnIgeyB4PXNwcmludGYoIiUxLjBmIiwgJDMtKCQ0LzEwKSk7IGlmICh4PDApIHg9MDsgcHJpbnQgJDEsICQyLCB4LCAkNDsgbmV4dCB9CjEnIGdlbmVfbGlzdCBvcmlnaW5hbF9maWxlLnR4dA==