从txt文件的每一行中删除第一个和最后一个字符

时间:2016-12-28 10:54:00

标签: shell unix

我需要删除文本文件每行的第一个和最后一个字符。

例如:

输入

$cat file1.txt
|head1|head2|head3|
|1|2|3|
|2|3|4|

输出:

head1|head2|head3
1|2|3
2|3|4

4 个答案:

答案 0 :(得分:1)

使用sed:

sed 's/.$//; s/^.//' inputfile

答案 1 :(得分:1)

在一个sed命令中执行此操作的简单方法:

sed -E 's/^.|.$//g' file

在行的开头或结尾匹配一个字符,并替换为空。

在基本模式下,请记住|需要转义:

sed 's/^.\|.$//g' file

答案 2 :(得分:1)

如果awk有帮助:

awk '{print substr($0,2,length($0)-2)}' file
head1|head2|head3
1|2|3
2|3|4

答案 3 :(得分:0)

@ smisra-请你试试,也可以帮助你。

awk '{gsub(/^\||\|$/,X,$0);print}'  Input_file