cat > locs.xy << EOF -121.524764291826 37.6600366036405 -121.523480804667 37.6543604613483 EOF cs2cs -f "%16.9f" +proj=longlat +datum=WGS84 +to +init=epsg:26743 locs.xy | awk '{if (NR == 1) printf("%16.9f %16.9f\n", 1703671.30566227-$1, 424014.398045834-$2) else printf("%16.9f %16.9f\n", 1704020.20113366-$1, 421943.708664294-$2) }' cs2cs -f "%16.9f" +proj=longlat +datum=WGS84 +to +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0 +y_0=500000.0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defs +towgs84=-0.991,1.9072,0.5129,0.025789908,0.0096501,0.0116599,0.0 locs.xy > locs.step1 awk '{ if (NR == 1) printf("%16.9f %16.9f\n", 6265039.1378244-$1, 2064418.92932968-$2) else printf("%16.9f %16.9f\n", 6265388.04257557-$1, 2062348.22239488-$2) }' locs.step1 cs2cs -f "%16.9f" +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0 +y_0=500000.0 +ellps=GRS80 +datum=NAD83 +units=us-ft +no_defs +towgs84=-0.991,1.9072,0.5129,0.025789908,0.0096501,0.0116599,0.0 +to +init=epsg:26743 < locs.step1 | awk '{ if (NR == 1) printf("%16.9f %16.9f\n", 1703671.30566227-$1, 424014.398045834-$2) else printf("%16.9f %16.9f\n", 1704020.20113366-$1, 421943.708664294-$2) }'