Подтвердить что ты не робот

Как удалить все пробелы из заданного текстового файла

Я хочу удалить все пробелы из заданного текстового файла. Есть ли какая-нибудь команда оболочки для этого? Или, как использовать sed для этой цели.

Мне нужно что-то вроде ниже:

$cat hello.txt | sed....

Я пробовал это: cat hello.txt | sed 's/ //g'. Но он удаляет только пробелы, а не вкладки.

4b9b3361

Ответ 1

$ man tr
NAME
    tr - translate or delete characters

SYNOPSIS
    tr [OPTION]... SET1 [SET2]

DESCRIPTION
   Translate, squeeze, and/or delete characters from standard 
   input, writing to standard output.

Чтобы стереть все пробелы, включая символы новой строки, вы можете попробовать:

cat file.txt | tr -d " \t\n\r" 

Вы также можете использовать классы символов, определенные tr (кредиты htompkins):

cat file.txt | tr -d "[:space:]"

Например, чтобы стереть только горизонтальное пустое пространство:

cat file.txt | tr -d "[:blank:]"

Ответ 2

Гораздо проще на мой взгляд:

sed -r 's/\s+//g' filename

Ответ 3

Я думаю, вы можете использовать sed, чтобы стереть пространство, не теряя при этом какой-либо информации, например, в другую строку.

cat hello.txt | sed '/^$/d;s/[[:blank:]]//g'

Ответ 4

Если вы хотите удалить пробелы ВСЕ, даже новые строки:

perl -pe 's/\s+//g' file

Ответ 5

Чувак, Просто python test.py в вашем терминале.

f = open('/home/hduser/Desktop/data.csv' , 'r')

x = f.read().split()
f.close()

y = ' '.join(x)
f = open('/home/hduser/Desktop/data.csv','w')
f.write(y)
f.close()

Ответ 6

Попробуйте следующее:

sed -e 's/[\t ]//g;/^$/d' 

(найдено здесь)

Первая часть удаляет все вкладки (\t) и пробелы, а вторая часть удаляет все пустые строки

Ответ 7

Это, наверное, самый простой способ сделать это:

sed -r 's/\s+//g' filename > output
mv ouput filename

Ответ 8

hmm... кажется, что что-то порядка sed -e "s/[ \t\n\r\v]//g" < hello.txt должно быть в правом шаге (кажется, работает в cygwin в любом случае).

Ответ 9

Попробуйте следующее:

tr -d " \t" <filename

Подробнее см. man-страницу для tr (1).

Ответ 10

Самый простой способ для меня →

        echo "Hello my name is Donald" | sed  s/\ //g

Ответ 11

Этот ответ аналогичен другому, однако некоторые люди жалуются, что вывод идет на STDOUT. Я просто собираюсь предложить перенаправить его в исходный файл и перезаписать его. Обычно я никогда не предлагал этого, но иногда быстро и грязно.

cat file.txt | tr -d " \t\n\r" > file.txt