У меня есть файл с такой структурой:
word1 word2 word3
word4 word5 word6
и я использую команду
sed -i '1s/$/word7/' file
добавить слово "word7" в конец первой строки
Проблема в том, что слово не добавляется в конец первой строки, а добавляется так:
word1 word2 word3
word7
word4 word5 word6
НО, когда я запускаю команду wc -l file, количество строк в моем файле не изменилось (по-прежнему 2)!
Я думаю, может быть, проблема в том, как файл был создан, он был создан программой на C с таким синтаксисом:
fprintf(file, "word1 word2 word3 \n");
Я не могу повторно запустить свою программу на C, поэтому какую команду bash мне следует запустить, чтобы получить:
word1 word2 word3 word7
word4 word5 word6
?
hexdump
илиod -xa
на результат. - person Andreas Florath   schedule 14.01.2013hd -c file
- person Lorenzo L   schedule 14.01.2013cat -v file
, что часто бывает достаточно, чтобы увидеть специальные символы (но иногда может быть недостаточно). Проблема, вероятно, возникает при создании файла: \ n компилятора C сервера может отличаться от \ n на машине, на которой вы используете sed. Попробуйте установитьLC_LANG
значения каждого сервера. - person Olivier Dulac   schedule 14.01.2013