Удаление двух последних символов из каждой строки в текстовом файле Как удалить последние два символа из каждой строки в текстовом файле, используя только команды Linux? Также в моем файле есть странные ^ Разделители. Что char соответствует ли ^ A? Ответ 1 sed 's/..$//' filename.txt Ответ 2 Второй ответ BenV. Однако вы можете убедиться, что вы удалите только ^ A: sed 's/^A^A$//' <file> В дополнение к этому, чтобы узнать, что такое ^ A, я сделал следующее: % echo -n '^A' |od -x 0000000 0001 0000001 % ascii 0x01 ASCII 0/1 is decimal 001, hex 01, octal 001, bits 00000001: called ^A, SOH Official name: Start Of Heading (хотел добавить в качестве комментария, но он не правильно цитирует) Ответ 3 вы также можете использовать awk awk '{sub(/..$/,"")}1' file вы также можете использовать оболочку while read -r line; do echo ${line:0:(${#line}-2)}; done<file однако, если вы говорите о том, чтобы избавиться от новых строк DOS (т.е.\r\n), вы можете использовать команду dos2unix
Ответ 2 Второй ответ BenV. Однако вы можете убедиться, что вы удалите только ^ A: sed 's/^A^A$//' <file> В дополнение к этому, чтобы узнать, что такое ^ A, я сделал следующее: % echo -n '^A' |od -x 0000000 0001 0000001 % ascii 0x01 ASCII 0/1 is decimal 001, hex 01, octal 001, bits 00000001: called ^A, SOH Official name: Start Of Heading (хотел добавить в качестве комментария, но он не правильно цитирует)
Ответ 3 вы также можете использовать awk awk '{sub(/..$/,"")}1' file вы также можете использовать оболочку while read -r line; do echo ${line:0:(${#line}-2)}; done<file однако, если вы говорите о том, чтобы избавиться от новых строк DOS (т.е.\r\n), вы можете использовать команду dos2unix