-
2021-05-10 19:04:38
说我有一些任意的多行文本文件:
sometext
moretext
lastline
如何在不使文本文件无效的情况下仅删除文件的最后一个字符(e,而不是换行符或null)?
解决方法:
一种更简单的方法(输出到stdout,不更新输入文件):
sed '$s/.$//' somefile
> $是仅与最后一行输入行匹配的Sed地址,因此导致以下函数调用(s /.$//)仅在最后一行执行.
> s /.$//用空字符串替换(在本例中为last)行的最后一个字符;即,有效地删除最后一个字符. (换行前)上线.
.匹配该行上的任何字符,并使用$anchors将其匹配到该行的末尾;注意这个正则表达式中$的使用在概念上是如何相关的,但在技术上与以前使用$作为Sed地址有所区别.
> stdin输入示例(假设Bash,Ksh或Zsh):
$sed '$s/.$//' <<< $'line one\nline two'
line one
line tw
要更新输入文件(如果输入文件是符号链接,请不要使用):
sed -i '$s/.$//' somefile
注意:
*在OSX上,您必须使用-i”而不仅仅是-i;有关与-i相关的陷阱的概述,请参见my answer here的下半部分.
*如果您需要处理非常大的输入文件和/或性能/磁盘使用是一个问题,并且您正在使用GNU实用程序(Linux),请参阅sorontar’s helpful answer.
标签:bash,linux,sed,unix
来源: https://codeday.me/bug/20190923/1815365.html
更多相关内容 -
编写一个函数,删除一个字符串的一部分
2018-02-02 17:36:52请编写一个函数,删除一个字符串的一部分。函数的原型如下: int del_substr(char *str, char const *substr); 函数首先应该判断substr是否出现在str中,如果它并未出现,函数就返回0;如果出现,函数应该把str中...题目要求:
请编写一个函数,删除一个字符串的一部分。函数的原型如下:
int del_substr(char *str, char const *substr);
函数首先应该判断substr是否出现在str中,如果它并未出现,函数就返回0;如果出现,函数应该把str中位于该子串后面的所有字符复制到该子串的位置,从而删除这个子串,然后函数返回1。如果substr多次出现在str中,函数只删除第一次出现的子串。函数的第2个参数绝不会被修改。代码如下:
方法一:int del_substr(char *str, char const *substr) { int flag = 0; //判断是否相等 char *stringStr = str; char *stringResult = NULL; char const *stringSubstr = substr; while (*stringStr != '\0') { if (*stringStr == *stringSubstr) { flag++; stringResult = stringStr; *stringStr++; *stringSubstr++; } else { stringStr++; stringSubstr = substr; } if (*(stringSubstr) == '\0') { while (*stringResult) { *(stringResult - flag) = *(++stringResult); } return 1; } } return 0; }
测试代码:
#include <stdio.h> int main() { char s1[] = "ABCDEF"; char s2[] = "BC"; int p = 0; p = del_substr(s1, s2); printf("%d\n%s\n", p,s1); return 0; }
方法二:
int del_substr(char *str, char const *substr) { char *stringStr = NULL; char *stringResult = NULL; char const *stringSubstr = NULL; int flag = 0; int flagTrue = 0;//判断是否相等过 if (str == NULL || substr == NULL) { return 0; } stringStr = str; stringSubstr = substr; while (*stringStr != '\0') { while (*stringSubstr != '\0') { if (*stringStr == *stringSubstr) { stringResult = stringStr; flag++; flagTrue = 1; *stringStr++; *stringSubstr++; continue; } else { flag = 0; break; } } if (*(stringSubstr) == '\0') { while (*stringResult) { *(stringResult - flag) = *(++stringResult); } return 1; } if (flagTrue == 1) { break; } else { stringStr++; } } return flag; }
测试代码:
#include <stdio.h> int main() { char s1[] = "ABCDEF"; char s2[] = "BC"; int p; p = del_substr(s1, s2); printf("%d\n%s\n", p, s1); return 0; }
输出结果:
1 ADEF
结束!
-
php 截取并删除字符串最后一个字符的方法
2021-03-22 23:10:37在字符串的处理中,有时需要对字符串的最后一个字母进行截取判断或进行删除的操作。那么在 php 编程语言中,截取字符串的最后一个字母,以及删除字符串最后一个字母的方法是怎样的呢?php 截取字符串最后一个字符的...在字符串的处理中,有时需要对字符串的最后一个字母进行截取判断或进行删除的操作。那么在 php 编程语言中,截取字符串的最后一个字母,以及删除字符串最后一个字母的方法是怎样的呢?
php 截取字符串最后一个字符的方法
1、使用 substr() 函数,截取字符串的最后一位
php代码:<?php
//声明页面的编码类型
header("Content-type: text/html; charset=utf-8");
echo substr("http://www.feiniaomy.com/", -1);
// 返回结果: /
echo mb_substr("飞鸟慕鱼博客", -1);
// 返回结果:客
?>
说明:
(1)、substr(),对中文字符串兼容性不好
(2)、mb_substr(),可以处理中文字符串
(3)、关于 substr() 函数使用,参考:https://www.feiniaomy.com/post/254.html
2、使用 strlen() 函数获取字符串的最后一个字符<?php
$str = "www.baidu.com";
$len = strlen($str)-1;
echo $str{$len};
?>
运行输出结果:m
php 删除字符串最后一个字符的方法
1、substr_replace() 函数删除字符串最后一个字符
php代码:<?php
$str = "www.baidu.com/";
echo substr_replace($str ,"",-1);
?>
输出结果:www.baidu.com
2、使用 substr() 与 mb_substr() 函数<?php
$str = "feiniaomy.com/";
echo substr($str, 0, -1);
$str = '飞鸟慕鱼博客站';
echo mb_substr($str,0,-1);
?>
运行结果:feiniaomy.com
飞鸟慕鱼博客
3、使用 rtrim() 函数删除字符串最后的字符
php代码:<?php
$str = "abcdefd";
echo rtrim($str,'d');
?>
运行结果:abcdef
-
Excel截取最后一个分隔符右边的字符串
2018-11-07 18:35:341)利用SUBSTITUTE将分隔符替换成空字符 2)利用LEN - LEN(SUBSTITUTE) 即可获取里面被替换掉了多少个分隔符 3)使用SUBSTITUTE将最后一个分隔...5)利用RIGHT或LEFT函数即可截取最后一个分隔符右边或左边的字符串内容 -
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2020-12-28 23:36:12需求:去掉js字符串末尾的标点符号原字符串:Hello World!目标字符串:Hello World...也就是说,-1 指字符串的最后一个字符end:要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾...需求:去掉js字符串末尾的标点符号
原字符串:
Hello World!
目标字符串:
Hello World
方式一:
stringObject.slice(start,end)
start : 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符
end:要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置
var str = 'Hello World!';
document.write(str.slice(0,str.length-1)); //输出 Hello World
方式二:
stringObject.substr(start,length)
start : 必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
length : 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
var str = 'Hello World!';
document.write(str.substr(0,str.length-1)); //输出 Hello World
方式三:
stringObject.substring(start,stop)
与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数
start : 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置
stop : 可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾。
var str = 'Hello World!';
document.write(str.substr(0,str.length)); //输出 Hello World
下面看下JS 删除字符串最后一个字符的几种方法
字符串:string s = "1,2,3,4,5,"
1、用的最多的是Substring
JS 删除字符串最后一个字符的几种方法 - li_crane - 未来之路(The road ahead)s=s.Substring(0,s.Length-1)
2、用 RTrim,原来只用来删除最后的空格,也没有仔细看过其它的用法,才发现可以直接trim掉一些字符
JS 删除字符串最后一个字符的几种方法 - li_crane - 未来之路(The road ahead)s=s.ToString().RTrim(',')
扩展 删除空格
function trim(str){ //删除左右两端的空格
return str.replace(/(^\s*)|(\s*$)/g, "");
}
function ltrim(str){ //删除左边的空格
return str.replace(/(^\s*)/g,"");
}
function rtrim(str){ //删除右边的空格
return str.replace(/(\s*$)/g,"");
}
3、用TrimEnd,这个东西和RTrim差不多,区别是这个传递的是一个字符数组,而RTrim可以是任何有效的字符串
JS 删除字符串最后一个字符的几种方法 - li_crane - 未来之路(The road ahead)s=s.TrimEnd(',')
JS 删除字符串最后一个字符的几种方法 - li_crane - 未来之路(The road ahead)//如果要删除"5,",则需要这么写
JS 删除字符串最后一个字符的几种方法 - li_crane - 未来之路(The road ahead)char[]MyChar={'5',','};
JS 删除字符串最后一个字符的几种方法 - li_crane - 未来之路(The road ahead)s=s.TrimEnd(MyChar);
JS 删除字符串最后一个字符的几种方法 - li_crane - 未来之路(The road ahead)//s="1,2,3,4"
类似函数:
TrimStart,LTrim等
还有一个TrimToSize对提高性能有微弱的好处....
string.TrimEnd().Remove(string.Length - 2, 1)
string.Remove()
总结
以上所述是小编给大家介绍的JS去掉字符串末尾的标点符号及删除最后一个字符的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
-
C语言:编写一个函数,删除字符串中指定位置上的字符。
2021-01-02 20:35:29C语言:编写一个函数,删除字符串中指定位置上的字符,若删除成功,返还被删除的字符串,否则返还空值。 #include <stdio.h> //删除字符串的第几个元素 int delet(char*a,int n){ //删除字符串a的第n的字符。... -
C++删除字符串最后一位方法
2019-04-17 11:27:31//方法一:使用substr() str = str.substr(0, str.length() - 1); cout ; return 0; } 2.使用erase实现 代码如下: #include #include using namespace std; int main() { string str; str... -
【Excel函数】删除最后一个零
2018-11-13 19:48:15业务需求,需要将数字最后的一个0删除,因为数字长度不统一,需要用到判断,稍微麻烦点,具体如图所示。 -
excel 除掉最后一个字
2022-01-28 17:32:46有一列数据,需要删除最后一个字符; 在B1单元格输入函数“=LEFT(A1,LEN(A1)-1)”; -
java删除字符串中最后一个字符
2020-09-07 10:07:03形如a,b,c,d,e,f,删除最后一个逗号 或是helloworld!删除最后一个感叹号 方法:使用str.substring String str = "a,b,c,d,e,f,"; str = str.substring(0,str.length()-1); 简单介绍一下substring用法: str.... -
python 获取字符串最后一个字符
2020-11-30 11:07:10因为序列类型是元素被顺序放置的一种数据结构,因此可以通过索引来获取某一个字符,或者指定索引范围来获取一...st=asdfgprint(st)gfds字符串分片的索引,索引的起始位置i,索引结束位置j,和步长k均可以省略,省略i... -
去掉字符串中的最后一个字符
2021-01-16 14:27:31去掉字符串中的最后一个字符原字符串1,2,3,4,5,6,去掉最后一个字符",",最终结果为1,2,3,4,5,6代码如下:$str = "1,2,3,4,5,6,";$newstr = substr($str,0,strlen($str)-1);echo $newstr;系统自带的函数也可实现这样... -
java字符串删除最后一个字符的几种方法
2018-05-28 22:05:25目标:删除最后一个 ","方法:1、用的最多的是Substring,这个也是我一直用的s=s.Substring(0,s.Length-1)2、用 RTrim,这个我原来只知道用来删除最后的空格,也没有仔细看过其它的用法,才发现可以直接... -
Qt删除文本中某一行字符或者文本以及替换字符函数
2021-04-14 17:15:15深度学习数据集转换操做遇到一些繁琐替换,写了几个函数方便批处理。 #include <QCoreApplication> #include <QFileInfo> #include <QFileInfoList> #include <QDir> #include <QFile&... -
C语言编程>第十一周 ⑤ 请编写一个函数,用来删除字符串中的所有空格。
2021-01-02 17:56:22例题:请编写一个函数,用来删除字符串中的所有空格。 例如,输入we l come,则输出为welcome。 请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 代码如下: #include<... -
js 删除字符串前几位字符,和删除最后一个字符
2019-10-07 18:51:57//删除最后一个字符串 this.allId = this.allId.substring(0,this.allId.length - 1); //删除前四个字符串 this.allId = this.allId.slice(4); 数据是这样的,需要把前面的(all,)和最后的(,)删掉 结果 ... -
Oracle刪除字符串中最后一个字符
2021-06-17 18:08:01根據substr函數,如果想要刪除最後一個或幾個字符, 根據下面sql進行聯想 select substr(string, 0, length(string)-1) from dual; 下面例子將1.A001_2.A002_3.A003_刪除最後的_符號. 看上去有些笨, 如果寫在函數裡... -
java删除字符串最后一个字符的几种方法
2019-02-25 11:34:00目标:删除最后一个 "," 方法: 1、用的最多的是Substring,这个也是我一直用的 s = s.Substring(0,s.Length - 1) 2、用 RTrim,这个我原来只知道用来删除最后的空格,也没有仔细看过其它的... -
perl中的字符串操作函数chomp与chop介绍
2020-12-23 07:10:48chomp与chop都是用于去除字符串变量尾部的字符,但它们有各自的区别。chomp函数对变量起作用,而此变量含有字符串。如果字符串结尾有换行符,...它非常有用,基本上你的每一个程序都会用到它。如你将知道,这是将字... -
编写一个函数del_str(char a[ ],char b[ ],int n),实现将指定位置的字符删除
2021-05-22 10:58:29满意答案qkqxx72013.05.02采纳率:48%等级:12已帮助:7078人#include #include void del_str(char a[ ],char b[ ],int n){int j = 0;...= n) //若i不等于要删除位置的下标,则将b中i位置的字符复制到a中a[j++] =... -
java-删除字符串的最后两个字符
2021-02-26 11:08:32java-删除字符串的最后两个字符这个问题已经在这里有了答案:如何从字符串中删除最后一个字符? 29个答案如何删除简单字符串的后两个字符05?简单:"apple car 05"码String[] lineSplitted = line.split(":");String... -
java中删除StringBuffer最后一个字段
2019-02-22 10:37:56在编写代码时遇见字符串拼接,当拼接完成后最后一个字符需要删除的场景。 写的为拼接sql功能,最后一个","需要去除否则sql报错。代码如下: sql.append(" select id companyId, name companyName &... -
StringBuffer去掉最后一个字符
2018-03-16 11:46:12那么如何去掉最后一个“|”呢?很简单 public class stringBuffer { public static void main (String[] args) { String stringArray[]; stringArray = new String[] { "0" , "1" , "2" };... -
PHP删除字符串最后一个字符
2017-08-20 15:48:37通常在存多个有效值的时候(如:关键字,标签等),需要对存储的值进行分隔符处理,这样处理后通常会在字符串的首端或末端多一个分隔符,这是就需要对字符串进行处理删除首端或末端的分隔符。 方法一: rtrim — ... -
删除字符串最后一个字符的几种方法
2017-10-26 12:45:01删除字符串最后一个字符的几种方法 删除字符串最后一个字符的几种方法 ...目标:删除最后一个 "," 方法: 1、用的最多的是Substring,这个也是我一直用的 s = s.Substring(0,s.Length - 1) -
编写函数delSpace实现删除字符串中全部指定的字符
2020-12-30 20:40:08编程题:编写函数delSpace实现删除字符串中全部指定的字符。 例如:删除字串"abaaacad"中所有的字符’a’,则结果为:“bcd”。 要求:删除功能用函数实现,且所有数据通过参数传递。 解决方法一 #include <stdio... -
输入一个字符,要求程序将字符串中该字符删去,用外部函数实现(c语言)
2019-04-12 10:07:14有一个字符串,内有若干个字符,今输入一个字符,要求程序将字符串中该字符删去,用外部函数实现。 解题思路: 1、分别定义3个函数用来输入字符串、删除字符、输出字符串 2、按题目要求把以上3个函数分别放在3个... -
形参h已指向字符串第一个字母,形参p已指向字符串中最后一个字母。在编写程序时,不得使用c语言提供的字符...
2021-08-21 16:03:57形参h已指向字符串第一个字母,形参p已指向字符串中最后一个字母。在编写程序时,不得使用c语言提供的字符串函数。 比如:**che*n*yu** 最后输出**chenyu** 2 、温馨提示 C语言试题... -
C语言——字符串里删除字符函数
2017-08-31 15:14:37前言:对于一个刚接触C语言的人来说,写个简单的字符串操作函数简直是要了我的命,刚开始看网上的大神写的代码的时候觉得很简单,自己想了一会之后觉得自己动手写肯定是没问题,可是当我自己写的时候(在不看他们... -
0001. 假定输入的字符串中只包含字母...形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供
2021-12-13 23:17:17形参p已指向字符串中最后的一个字母。在编写函数时,不得使用C语言提供的字符串函数。 例如,字符串中的内容为ABCDEFG*******,删除后,字符串中的内容应当是ABCDEFG*******。 注意:部分源程序在文件PROG1.C中。 ...