#sed #awk #tr
#sed #awk #tr
Вопрос:
Привет всем здесь, у меня проблема. У меня есть файл, в котором есть некоторые данные, подобные этому
- манго
- Apple
- Оранжевый
- виноград
Когда я запускаю команду
tr 'n' ' ' < file.txt
Она работает нормально;
вывод был:
mango apple orange grapes
но у меня есть другой файл, в котором есть такие данные
- 12029
- SIDRASHAHID
- 7(outof471)
но приведенная выше команда с ней не работает. Проблема в том, что в файле есть числовые данные?
Я даже пробовал sed, но потерпел неудачу.
Может ли кто-нибудь сказать мне, есть ли способ, с помощью которого я могу записать эти данные в одну строку?
Комментарии:
1. Что вы видите? Может ли проблема заключаться в том, что в файле есть возвраты каретки (окончания строк CRLF с компьютера с Windows)? Если это так, вы, вероятно, увидите ‘7 (outof471)’ в качестве выходных данных.
2. да, сэр, это из-за возврата каретки, спасибо
Ответ №1:
Преобразование комментария в ответ, поскольку он кажется точным:
Что вы видите? Может ли проблема заключаться в том, что в файле есть возвраты каретки (окончания строк CRLF с компьютера с Windows)? Если это так, вы, вероятно, увидите ‘7 (outof471)’ в качестве выходных данных.
Ответ №2:
$ cat file.txt
12029
SIDRASHAHID
7(outof471)
использовать echo $()
:
$ echo $(cat file.txt)
12029 SIDRASHAHID 7(outof471)
Если вы все еще хотите использовать sed
, вы можете:
$ sed -e :a -e '$!N; s/n/ /; ta' file.txt
12029 SIDRASHAHID 7(outof471)
Комментарии:
1. Сэр, он печатает только 7 (outof471)
2. используйте
sed
пример, который я опубликовал. Поскольку ваша оболочка может не быть… «стандартный».
Ответ №3:
попробуйте это:
awk '{printf $0}' yourFile