# Remove prefix using awk

**URL:** <https://community.unix.com/t/remove-prefix-using-awk/241501>\
**Category:** Shell Programming and Scripting\
**Created:** [June 1, 2009, 6:21pm UTC](https://community.unix.com/t/remove-prefix-using-awk/241501 "2009-06-01T18:21:15Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![pinnacle](https://community.unix.com/letter_avatar/pinnacle/32/6_22734026db12803ebb3e059622ac3534.png) [@pinnacle](https://community.unix.com/u/pinnacle)\
**Post date:** [June 1, 2009, 6:21pm UTC](https://community.unix.com/t/remove-prefix-using-awk/241501/1 "2009-06-01T18:21:15Z")

</div>

Remove prefix using awk

File:

> [@](#):
>
> xyz.amp|x|a|t  
> xyz.tmpx|a|t  
> aic.klmx|a|t  
> jil.djn|a|t  
> mno.djn|j|k  
> dij.iuy|a|t

```plaintext
 nawk -F"|" '{if ($1 ~ /^xyz./) print; else { gsub(.*\..*, \..*, $1) ;print }}' file

```

Error:

> [@](#):
>
> nawk: syntax error at source line 1  
> context is  
> {if ($1 ~ /^xyz./) print; else { \>\>\> gsub(. \<\<\< \*\.._, \.._, $1) ;print}}

ouput required:

> [@](#):
>
> xyz.amp|x|a|t  
> xyz.tmpx|a|t  
> klmx|a|t  
> djn|a|t  
> djn|j|k  
> iuy|a|t

---

<div class="post-metadata">

**Author:** ![ghostdog74](https://community.unix.com/letter_avatar/ghostdog74/32/6_22734026db12803ebb3e059622ac3534.png) [@ghostdog74](https://community.unix.com/u/ghostdog74)\
**Post date:** [June 1, 2009, 7:59pm UTC](https://community.unix.com/t/remove-prefix-using-awk/241501/2 "2009-06-01T19:59:58Z")

</div>

check the syntax of your gsub().

---

<div class="post-metadata">

**Author:** ![summer\_cherry](https://community.unix.com/letter_avatar/summer_cherry/32/6_22734026db12803ebb3e059622ac3534.png) [@summer\_cherry](https://community.unix.com/u/summer_cherry)\
**Post date:** [June 1, 2009, 10:52pm UTC](https://community.unix.com/t/remove-prefix-using-awk/241501/3 "2009-06-01T22:52:17Z")

</div>

how about below shell?

```nohighlight
while read line;do
set $line
echo ${1#*.}
done < yourfile

```

---

<div class="post-metadata">

**Author:** ![ghostdog74](https://community.unix.com/letter_avatar/ghostdog74/32/6_22734026db12803ebb3e059622ac3534.png) [@ghostdog74](https://community.unix.com/u/ghostdog74)\
**Post date:** [June 1, 2009, 11:40pm UTC](https://community.unix.com/t/remove-prefix-using-awk/241501/4 "2009-06-01T23:40:18Z")

</div>

> [@summer\_cherry](#):
>
> how about below shell?
> 
> ```plaintext
> while read line;do
> set $line
> echo ${1#*.}
> done < yourfile
> 
> ```

check your output.

---

<div class="post-metadata">

**Author:** ![devtakh](https://community.unix.com/letter_avatar/devtakh/32/6_22734026db12803ebb3e059622ac3534.png) [@devtakh](https://community.unix.com/u/devtakh)\
**Post date:** [June 2, 2009, 12:36am UTC](https://community.unix.com/t/remove-prefix-using-awk/241501/5 "2009-06-02T00:36:40Z")

</div>

```nohighlight
sed -n '/^xyz\./p;/^xyz\./!{s/^[^.|]*\.\(.*\)/\1/p}' filename

```

op:

```auto
xyz.amp|x|a|t
xyz.tmpx|a|t
klmx|a|t
djn|a|t
djn|j|k
iuy|a|t

```

Or using awk:

```nohighlight
awk -F "|" '/^xyz\./{print;next}{sub(/^[^.]*\./,"",$1);print}' OFS="|" filename

```

```auto
xyz.amp|x|a|t
xyz.tmpx|a|t
klmx|a|t
djn|a|t
djn|j|k
iuy|a|t

```

-Devaraj Takhellambam

---

<div class="post-metadata">

**Author:** ![Franklin52](https://community.unix.com/user_avatar/community.unix.com/franklin52/32/500_2.png) [@Franklin52](https://community.unix.com/u/Franklin52)\
**Post date:** [June 2, 2009, 4:53am UTC](https://community.unix.com/t/remove-prefix-using-awk/241501/6 "2009-06-02T04:53:30Z")

</div>

Or shorter:

```nohighlight
awk '!/xyz/{sub(".*\.","")}1' file

```
