javanoob
javanoob

Reputation: 6412

How to remove this special character at the end of the file

This is the output of cat command and I don't know what this special character is called that is at the end of the file to even search for. How to remove this special character in bash? enter image description here

EDIT:

Here is the actual xml file(I am just copy pasting):

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
  <types>
    <name>ApexClass</name>
    <members>CreditNotesManager</members>
    <members>CreditNotesManagerTest</members>
  </types>
  <version>47.0</version>
</Package>%

Upvotes: 0

Views: 1081

Answers (4)

Richard Barber
Richard Barber

Reputation: 6431

This is actually a feature of zsh, not bash. To disable it, unsetopt prompt_cr prompt_sp The reverse prompt character showing up means that line had an end-of-file before a final ascii linefeed (newline) character. How to remove this special character at the end of the file

Upvotes: 1

Chris Gillatt
Chris Gillatt

Reputation: 1146

If you don't need to save changes, you could use grep:

grep -v "%" <file.xml

This uses grep along with it's inverse matching flag -v. This method will remove all instances of the character % and print the result to STOUT. The < character is a method to tell grep which file you're talking about.

EDIT: actually you don't even need the redirection, so:

grep -v "%" file.xml

Upvotes: 1

Jetchisel
Jetchisel

Reputation: 7831

If it is just at the last line, this should work. Using ed(1)

printf '%s\n' '$s/%//' w | ed -s file.xml

Upvotes: 1

l&#39;L&#39;l
l&#39;L&#39;l

Reputation: 47274

It's unclear how the % (percent sign) is ending up in your file; it's easy to remove with sed:

sed -i '' 's/\(</.*>\)%.*/\1/g' file.xml

This will remove the percent and re-save your file. If you want to do a dry-run omit the -i '' portion as this is tells sed to save the file in-line.

As mentioned in the comments, there are many ways to do it. Just be sure you aren't removing something that you want to keep.

Upvotes: 2

Related Questions