Как перемещать строки в файле, который содержит * в каждой строке

У меня есть файл, содержащий около 800 строк. Все строки содержат в нем 1 * символ.

Мне нужно прокрутить строки в файле, поэтому я использовал следующий простой цикл

for i in $(cat file_path); do echo $i; done 

К сожалению, это не сработало.

Когда я пытаюсь сделать это с другими файлами, но строки в файле не содержат символ *, цикл работает нормально.

Как я могу это решить?

3 Solutions collect form web for “Как перемещать строки в файле, который содержит * в каждой строке”

Вы должны использовать следующий формат:

 #!/bin/bash SAVEIFS=$IFS while IFS= read -r line <&3 do echo "$line" done 3< myfile.txt IFS=$SAVEIFS 

Тест:

 root@debian:/home/mohsen/test/shell# ./linebylibe.sh ff dd gg tt tt ww ee 

И мой myfile.txt:

 root@debian:/home/mohsen/test/shell# cat myfile.txt ff dd gg tt tt ww ee 

У вас есть некоторые проблемы с кодом:

  • Оставляя переменные и замену команд не кавычками
  • Использование эха с произвольной переменной

Вы можете исправить их, используя цикл while:

 while IFS= read -r line <&3; do { printf '%s\n' "$line"; } 3<&- done 3< file [ -z "$line" ] || printf %s "$line" 

Заметка, что использование циклов while для обработки текстовых файлов считается плохой практикой в оболочке POSIX.

Вы можете использовать:

 while read line; do echo "$line"; done < test.txt 

или определить отдельный символ IFS :

 SAVEIFS=$IFS; IFS="\n"; for i in $(cat test.txt); do echo "$i"; done; IFS=$SAVEIFS 
  • Как вернуть 0, если шаблон сопоставлен с файлом?
  • Отображение сообщений в tty с использованием whiptail через monit
  • Почему число округлено по ssh?
  • Как получить владельца и полный путь 50 файлов большого размера для всех пользователей?
  • восстановить удаленный файл, открытый apache?
  • Разверните вывод двух команд `awk`
  • Хранить stdout в переменной и отправлять команду на фоновый
  • Bash перезаписывает первую строку при использовании пользовательской подсказки PS1
  • Проверка бинарных файлов команд перед выполнением
  • как проверить, используется ли таблица mysql или приложение обращается к таблице в сценарии оболочки?
  • сделать мой режим отображения zsh в режиме vi
  • Interesting Posts

    Безопасное использование неизвестных приложений

    Может ли кто-нибудь объяснить разные типы сокетов домена unix?

    Как установить ОС Microsoft Windows, если у вас уже установлен Ubuntu 12.04

    Создание отформатированного раздела из ничего

    Передать все задания печати на один принтер на сервере CUPS

    GNU Guix usb-install зависает в GRUB после загрузки

    Файловая система: как найти блок файла, представленный inode?

    Xpdf подходит для ширины страницы в полноэкранном режиме

    USB-накопитель не обнаружен на Antergos после его использования в Windows 8.1

    Как я могу перечислить каждый файл в каталоге, кроме тех, у которых указаны указанные расширения?

    Как определить, было ли в метаданных

    Удалите кодовую фразу из закрытого ключа и задайте определенный режим файла

    Проблема с mv и добавление даты

    Как настроить apache с suPHP и VirtualHosts, чтобы избежать проблемы с DocumentRoot?

    Не удается заставить Tiger-Vnc работать на Fedora 21

    Linux и Unix - лучшая ОС в мире.