2017-04-20 20 views
-3

我不知道如何讓特定的字符如下:如何獲得通過SED,正則表達式或shell技能特定字符

.1.3.6.1.4.1.5.1.1.6.1.1.1.0 interface entry 1 active 
.1.3.6.1.4.1.5.1.1.6.1.1.2.0 interface entry 1 vid 
.1.3.6.1.4.1.5.1.1.6.1.1.3.0 interface entry 1 mtu 

我想要得到的字符,如空間之間的「接口第1項活動」和換行符,但我不知道如何得到它,有人可以給我一個建議?,謝謝。

+0

看看'男人cut' – Sundeep

+0

這意味零的嘗試並要求他人爲你做這項工作。 – grail

回答

0

只要前綴部分是固定寬度,cut -c 33-就可以做到。

+1

可能更好地依靠字段分隔符... – Sundeep

0

你可以做到這一點。這個工作對我來說:

echo ".1.3.6.1.4.1.5.1.1.6.1.1.1.0 interface entry 1 active 
.1.3.6.1.4.1.5.1.1.6.1.1.2.0 interface entry 1 vid 
.1.3.6.1.4.1.5.1.1.6.1.1.3.0 interface entry 1 mtu" | cut -d' ' -f2- | sed 's/^\s*//g' 

會導致

interface entry 1 active 
interface entry 1 vid 
interface entry 1 mtu 
+0

謝謝,它是有用的:) – deh3215

1

AWK方法:

awk '{$1="";$0=$0;$1=$1}1' file 

輸出:

interface entry 1 active 
interface entry 1 vid 
interface entry 1 mtu 

$1=""; - 設置第一個字段值爲空字符串


或用sed的

sed -n 's/^[^ ]* *\(.*\)/\1/p' file 
+0

要擺脫領先的空格將其更改爲: awk'{$ 1 =「」; $ 0 = $ 0; $ 1 = $ 1} 1' –

+0

@ClaesWikner,完成了 – RomanPerekhrest

+0

它炒鍋,謝謝:) – deh3215

0

1號店的文本文件:
cat data.txt
輸出爲: .1.3.6.1.4.1.5.1.1.6.1.1.1.0 interface entry 1 active .1.3.6.1.4.1.5.1.1.6.1.1.2.0 interface entry 1 vid .1.3.6.1.4.1.5.1.1.6.1.1.3.0 interface entry 1 mtu

2使用命令:
awk -F " " '{print $2}' data.txt
輸出爲: interface entry 1 active interface entry 1 vid interface entry 1 mtu

或者使用grep命令: grep -Po "(?<= ).+" data.txt 輸出爲: interface entry 1 active interface entry 1 vid interface entry 1 mtu

相關問題