Прерывание сначала 16 символов с помощью SED

Я использую команду SED для попытки, срубают строки. Я в настоящее время пытаюсь заставить первые 16 символов прерывать от текстового файла (линию за линией)

Строки в качестве примера:

psinfo -s -c   psinfo -s -c  ALASTAIR-MUNRO    
psinfo -s -c   psinfo -s -c  ANDREWATKINSON    
psinfo -s -c   psinfo -s -c  ANDY-KAYE         
psinfo -s -c   psinfo -s -c  ANDYTURNER        
psinfo -s -c   psinfo -s -c  CAD-SPARE2        
psinfo -s -c   psinfo -s -c  CAD-SPARE3        
psinfo -s -c   psinfo -s -c  CADTEMP1          
psinfo -s -c   psinfo -s -c  CARLWALKER        
psinfo -s -c   psinfo -s -c  CAROLEGIBBONS     
psinfo -s -c   psinfo -s -c  CHRIS-SMITH 

Я пытаюсь прервать первую партию PSinfo -s -c и затем преобразуйте это в отдельный txt

Это - то, что я имею, который не работает (ниже) Никаких идей?

BIN\sed -e 's/^\(.\{60\}\).*/\16/' Working\Hostnames3.txt > Working\Hostnames4.txt
0
задан 21 April 2017 в 04:58

3 ответа

Простой и экономичный метод для достижения этой цели:

cut -c 16- hostname.txt > altered_hostname.txt

Волшебная часть этой простой команды cut состоит из следующих двух вариантов:

-c,   --characters=LIST
       select only these characters
 N-    from N'th byte, character or field, to end of line
1
ответ дан 3 November 2019 в 09:37

Вы можете попробовать эту команду (awk)

awk '{sub(".*" $3 FS,"")}1' Working/Hostnames3.txt > Working/Hostnames4.txt

, чтобы удалить первые три поля из входного файла (насколько я понимаю, это то, что вам нужно) P.S. Вот пример выполнения вышеуказанного скрипта:

# cat in
a b c d
aa bb cc dd
a1 b1 c1 d1

# awk '{sub(".*" $3 FS,"")}1' in >out
# cat out
d
dd
d1
0
ответ дан 3 November 2019 в 09:37

Другой подход: получить последний psinfo .... с помощью grep:

grep -Po '.*\Kpsinfo.*'
0
ответ дан 3 November 2019 в 09:37

Другие вопросы по тегам:

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