当前位置: 首页 > 面试题库 >

如何在UNIX中删除文件的最后一个字符?

端木明贤
2023-03-14
问题内容

说我有一些任意的多行文本文件:

sometext
moretext
lastline

如何在不使文本文件无效的情况下仅删除文件的最后一个字符(e,而不是换行符或null)?


问题答案:

一个更简单的方法( 输出到stdout ,不更新输入文件):

sed '$ s/.$//' somefile
  • $是仅与最后一个输入行匹配的Sed地址,因此导致s/.$//仅在最后一行执行以下函数调用()。
  • s/.$//用空字符串替换(在本例中为 last )行的 最后 一个字符;即,有效地删除最后一个字符。(在换行符之前)。
    .匹配该行上的任何字符,并在其后跟$将匹配项锚定到该行的末尾;请注意,$在此 正则表达式中
    的用法在概念上是相关的,但在技术上与先前将其$用作Sed 地址不同

  • 使用stdin输入的示例(假设Bash,Ksh或Zsh):

    $ sed '$ s/.$//' <<< $'line one\nline two'
    

    line one
    line tw

更新输入文件 太多(如果输入文件是符号链接,不要使用):

sed -i '$ s/.$//' somefile


 类似资料:
  • 问题内容: 在互联网上浏览后,我来了。 假设我已经制作了一个文本文件,内容为: 好吧,我想从此文本文件中删除最后一个字符(在本例中为)。 因此,现在文本文件应如下所示: 但是我不知道该怎么做。 我所需要的或多或少是对HDD上文本文件的单个退格功能。 这需要在Linux上工作,因为这就是我正在使用的。 问题答案: 用于从末尾寻找1个位置,然后用于删除文件的其余部分: 这对于单字节编码工作正常。如果您

  • 问题内容: 我想删除字符串的最后一个字符,但在此之前,我想检查最后一个字符是否为“ +”。如何才能做到这一点? 问题答案: 这是删除尾随加号的几种方法。 输出:

  • 如果字符计数超过200,我正在尝试删除UIText字段中的最后一个字符。但它没有效果:

  • 问题内容: 我有一些文件要删除最后一个换行符(如果它是文件中的最后一个字符)。 告诉我,我运行的命令确实以尾随新行写入文件: 我用sed尝试了一些技巧,但我能想到的最好的方法不是: 任何想法如何做到这一点? 问题答案: 或者,在适当位置编辑文件: [编者注:最初是,但正如一些评论者所指出并由@hvd解释,后者不起作用。] 在我看到的awk网站上,这被描述为“ perl亵渎”。 但是,在测试中,它奏

  • 我将在main方法中这样做,首先实例化该类的一个对象,即。 代码示例: