#linux
#linux
Вопрос:
Я пытаюсь удалить кучу ^ K из файла в linux для класса, но все, что я пытался, не работает.
итак, я просматриваю файл memo.txt и у него есть линии с двойным интервалом
Я уменьшаю размер файла, и после каждой строки в нем есть ^K
Я пытаюсь удалить ^K и вывести его в новый файл
Я пытался
cat memo.txt | tr -d "n" > memo.new
cat memo.txt | tr -d "^K" > memo.new
и некоторые другие функции sed.
Комментарии:
1. Каждый символ по-своему особенный.
Ответ №1:
Возможно, вы захотите попробовать что-то вроде этого:
tr -d '13' < memo.txt > memo.new
013
является восьмеричным значением для символа ^K
.
Комментарии:
1. Спасибо за ответ, а не просто за справочную страницу. Я знаю, что это для школы, но я пытался.
2. Вы также можете получить значение, нажав Ctrl v, а затем Ctrl K. Ctrl v заставляет следующий ввод указывать его буквальное значение вместо обычного эффекта
3. @Джонатан Каллен, как вы нашли восьмеричное значение ^K?
4.
^A
через^Z
— это символы, пронумерованные 1-26;K
это 11-я буква, поэтому простое базовое преобразование дает013
восьмеричное число.
Ответ №2:
Взгляните на:
man strings
это имхо именно то, что вы хотите…
Комментарии:
1. Вы чувствуете необходимость потенциально уничтожить содержимое только для полного удаления одного символа?
Ответ №3:
Я думаю, что ответ ABCD будет работать. Но если это не сработает, попробуйте выполнить следующее:
tr -d "`echo -e '13'`" < memo.txt > memo.new
Встроенная команда echo выведет фактический символ ^K, поэтому tr будет точно знать, что нужно удалить.