пакетный файл + преобразовывает LF в CR+LF

Нам назвали файл сценария оболочки LineFeed.sh который делает функцию преобразования Перевода строки (LF) к Возврату каретки + LineFeed. Мы хотим, чтобы то же было сделано пакетным файлом в окнах. Действительно ли это возможно?

Файл оболочки Linux

E_WRONGARGS=65
cat OutputList|while read -r Line 
do 
if [ -z "$Line" ]
then
echo "Usage: `basename $0` filename-to-convert"
exit $E_WRONGARGS
fi
NEWFILENAME=$Line.unx
CR='\015'  # Carriage return.
       # 015 is octal ASCII code for CR.
       # Lines in a DOS text file end in CR-LF.
       # Lines in a UNIX text file end in LF only.
tr -d $CR < $1 > $NEWFILENAME // here its deleting CR but i need to append LF
# Delete CR's and write to new file.
done
echo "Original DOS text file is \"$1\"."
echo "Converted UNIX text file is \"$NEWFILENAME\"."
exit 0
5
задан Tuan 13 April 2014 в 04:26
поделиться

1 ответ

Вы можете найти один из способов на этой странице Википедии :

TYPE unix_file | FIND "" /V > dos_file

Помните, что вы не можете перенаправить вывод в тот же файл, из которого вы читаете . Это относится практически ко всем системам и оболочкам, поэтому необходимо дополнительное переименование.

Ключевым моментом здесь является то, что type умеет читать окончания строк LF, а find затем преобразует их в CRLF. type сам по себе ничего не сделает с выводом (так и должно быть, потому что иметь команду, которая просто сбрасывает содержимое файла, бесполезно с ними связываться :-)).

13
ответ дан 18 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: