在Unix Shell Scripting中从String中删除动态后缀模式

时间:2014-05-26 11:26:57

标签: linux shell unix sed scripting

我的数据格式如下:

2.7G58%/usr
8%/oravl02
49%/oravl01
98%/osszoneusr/osszone/user

我需要删除从行首到百分比的所有内容,以便上面的示例数据输出为:

/usr
/oravl02
/oravl01
/osszoneusr/osszone/user

我特意在解决方案中寻找linux内置字符串条带化或sed。

3 个答案:

答案 0 :(得分:1)

使用awk

awk -F '%' '{print $2}' file

使用sed

sed -i.bak 's/^.*%//' file

使用cut

cut -d% -f2 file

答案 1 :(得分:0)

awk变体。

awk -F% '$0=$NF' file
/usr
/oravl02
/oravl01
/osszoneusr/osszone/user

答案 2 :(得分:0)

Please try  in below ways

cut: the delimiter must be a single character

bcsmc2rtese001 [~/Shell_p]$ cut -d '%' -f2 text1.txt  
/usr  
/oravl02   
/oravl01  


bcsmc2rtese001 [~/Shell_p]$ awk -F "%" '{print $2}' text1.txt  
/usr  
/oravl02  
/oravl01  
/osszoneusr/osszone/user