Удалять пробелы до конца каждой строки для каждой строки в файле

Я нашел решение, которое мне подходит SSL НА CENTOS 8

  1. открытьnano /etc/httpd/conf.d/ssl.conf
  2. Добавьте свой ssl в файл ssl.conf
  3. ГОТОВО
SSLCertificateFile /etc/letsencrypt/live/radiolatina.ru/fullchain.pem 

SSLCertificateKeyFile /etc/letsencrypt/live/radiolatina.ru/privkey.pem 
0
29.03.2021, 21:01
4 ответа

Есть несколько способов. Наиболее очевидным, по крайней мере для меня, является использование цикла внутри sed.

 sed  -e :loop -e 's/  *\(.*YYY\)/\1/;t loop'

(после первой косой черты два пробела ). :loopпросто ярлык. s/ *\(.*YYY\)/\1/соответствует одному или нескольким пробелам, за которыми следует что-то, а затем YYY и заменяет его тем же самым без начальных пробелов. t loopговорит перейти к метке, если замена имела место. Каждый раз в цикле он удаляет один блок пробелов перед YYY. Ничто не касается пробелов или чего-либо еще после YYY.

2
28.04.2021, 22:58
awk '{$1=$1}1' OFS= your_file

Это все, что вам нужно. Присвоение полю (в данном случае сначала )убирает все лишнее, а пустой OFS сшивает поля без каких-либо разделяющих их элементов.

1
28.04.2021, 22:58
sed -r "s/\s+//g" filename

output

8080C01124Amazon45/234Birch00YYY
8080C01184Flipkart45/234Lotus01YYY
8080C01186PrimeTime45/23XCCCCH08YYY
8080C01125DMART5/23PPPPPPP09YYY




 awk '{gsub(" ","",$0);print }' filename


8080C01124Amazon45/234Birch00YYY
8080C01184Flipkart45/234Lotus01YYY
8080C01186PrimeTime45/23XCCCCH08YYY
8080C01125DMART5/23PPPPPPP09YYY

Питон

#!/usr/bin/python
import re
k=re.compile(r'\s')
l=open('filename','r')
for m in l:
    f=re.sub(k,"",m)
    print f.strip()
-1
28.04.2021, 22:58

Вот ответ на вопрос, который вы вроде -своего рода -вроде бы задаете:

sed 's/ *\([^ ]\)/\1/g'

Это предполагает, что вы имеете дело только с обычными пробелами, а не с табуляцией. Он ищет строку пробелов, за которой следует символ пробела, отличный от -, и заменяет его только пробелом, отличным от -. И он делает это глобально (столько раз, сколько возможно, в каждой строке ). Это удалит все пробелы, кроме тех, что в конце строки (после последнего слова ), потому что за ними не следует символ пробела, отличный от -.

Это работает независимо от того, какое последнее слово (, оно не обязательно должно бытьYYY). Строки, содержащие только пробелы (s ), переносятся без изменений.


Если вы действительно хотите удалить все пробелы, используйте один из более простых ответов, которые делают это.

1
28.04.2021, 22:58

Теги

Похожие вопросы