Это должна быть довольно стандартная задача для awk
awk 'NR==FNR {a[$1]++; next} $1 in a {$2="match"}1' File2 File1
Mg_134 match
Mg_560
Это \ r
не ^ M
. Самый простой способ сделать это:
tr -d '\n-\r' < file.
-d
означает удаление, а \ n- \ r
- это диапазон символов для tr
uncation.
Обратите внимание, что этот код также удалит вхождения \ n
, которым не предшествует " ^ M
".
Это работает для вашего случая:
sed -i ':a;N;$!ba;s/\r\n//g' file.csv
От: Может ли sed заменить символы новой строки?
Или это one:
sed -e :a -e '/\r$/N; s/\r\n//; ta' file.csv
От: http://www.catonmat.net/blog/sed-one-liners-explained-part-one/
Обратите внимание, что вам не нужно использовать cat
, и вы можете напрямую редактировать свой файл с помощью опции -i
, если хотите.