我有一个数据文件,我想删除第一个和最后一个字符。有没有简单的方法可以做到这一点?我在网上搜索,但没有找到简单的方法。 谢谢!
答案 0 :(得分:0)
尝试:
sed -i '1s/.\(.*\)/\1/; $s/\(.*\)./\1/' path/to/file.txt
-i
:就地修改文件
1s
:仅将替代命令应用于行号1
$s
:仅将替代命令应用于最后一行
\( ... \)
:捕获组,以稍后使用\1
基本上,这是两个粘贴有;
的sed替代命令
编辑:刚刚意识到您说的很简单...不确定这是否简单。
答案 1 :(得分:0)
如果您对awk
感到满意,请尝试以下操作。
awk '
prev{
if(++count==1){
print substr(prev,2)
}
else{
print prev
}
prev=""
}
{
prev=$0
}
END{
if(prev){
print substr(prev,1,length(prev)-1)
}
}' Input_file
答案 2 :(得分:0)
使用awk *。使用Lorem\nipsum
进行测试(没有结尾的换行符,否则将被删除**):
$ echo -en Lorem\\nipsum | awk -v RS="^$" '{gsub(/^.|.$/,"")}1'
orem
ipsu
解决方案在处理之前将整个输入读入内存,因此可能被认为是不利的。
*使用gawk,awk-20121220和Busybox awk成功进行了测试,但由于mawk失败了。
**“最后一个字符”:
$ echo -e Lorem\\nipsum # outputs:
Lorem\n
ipsum\n # \n is last char but print (well, 1) adds another
为避免这种情况,请改用printf
:
$ echo -e Lorem\\nipsum | awk -v RS="^$" '{gsub(/^.|.$/,"");printf "%s",$0}'
orem
ipsum$