Удалить только один пробел в текстовом файле с помощью sed, perl, awk, tr или чего-либо еще
У меня довольно большой текстовый файл, где между каждым символом есть дополнительное пространство;
Я тулоксликет это.
Я хотел бы удалить эти дополнительные символы так
Похоже на это.
через терминал Linux. Кажется, я никак не могу сделать это, не удаляя все пробелы. Я готов попробовать любое решение на данный момент. Буду признателен за любое движение в правильном направлении.
5 ответов
Решение
$ echo 'I t l o o k s l i k e t h i s . ' | sed 's/\(.\) /\1/g'
It looks like this.
Вы уверены, что промежуточные символы являются пробелами? Скорее всего, это файл UTF-16.
Я предлагаю вам использовать способный редактор, чтобы открыть его как таковой и конвертировать в UTF-8.
awk
решение
echo "I t l o o k s l i k e t h i s ." | awk '{for (i=1;i<=NF;i+=2) printf $i;print ""}' FS=""
It looks like this.
Пока от каждого другого персонажа вы хотите избавиться, вы можете использовать python.
>>> s = "I t l o o k s l i k e t h i s ."
>>> print s[0::2]
It looks like this.
Если вы хотите сделать это для текстового файла, сделайте следующее:
with open("/path/to/file.txt") as f:
f = f.readlines()
with open("/path/to/new.txt") as g:
for i in f:
g.write(str(i)[0::2]+"\n")