У меня это работало на Puppy Linux Xenial x64:
https://nordvpn.com/tutorials/ipfire/openvpn/
Примечание :Если VPN не может запуститься для вас и вы получаете этот вывод:
ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Затем сделайте следующее:
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
cat /dev/net/tun
Если вы получили сообщение:
cat: /dev/net/tun: File descriptor in bad state
Это означает, что ваше устройство TUN/TAP готово к использованию.
Публикую это как ответ для ясности.
Как указал rowboat , в этом случае команда awk -F '\r' '{print $NF}' file
работает как задумано, удаляя все после последнего возврата каретки. Хотя это ненадежно, как указал zevzek .
Ниже я написал более надежное решение на C++.
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
string filter_string(string line, const char *bspace, const char *creturn){
string new_str;
for(string::size_type i = 0; i < line.size(); ++i) {
// Step back if current string not empty
if (line[i] == *bspace){
if (new_str.size() != 0){
new_str.pop_back();
};
// Reset on carriage return
} else if (line[i] == *creturn){
new_str = "";
} else {
new_str += line[i];
};
}
return new_str;
};
int main(int argc, char* argv[]){
const char backspace = '\x08';
const char creturn = '\r';
if (argc != 2){
cerr << "USAGE: " << argv[0] << " [src]" << endl;
return 1;
}
// Filter lines in file
string line;
ifstream infile(argv[1]);
while (getline(infile, line)){
cout << filter_string(line, &backspace, &creturn) << endl;
};
return 0;
};
Здесь повторяется каждый символ в каждой строке, и если присутствует ^H
, строка отодвигается на один (, если она еще не пуста ), и если присутствует ^M
возврат каретки, то строка сбрасывается. Вывод отправляется на stdout
, который затем может быть передан в файл.
sed 's/.*\x0d//' logfile
Кажется, он делает то, о чем вы просите.
Обратите внимание, что col -b
завершается ошибкой, потому что игнорируются пробелы.:
$ echo $'--------\r1st try\r2nd \r3rd\n' | col -b
3rd-try-