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

У меня есть файл, содержащий около 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 
  • Как создать защищенный паролем сценарий оболочки
  • Автоматически обнаруживать, когда я набрал «vi», но имел в виду «cd»?
  • Debian: настройка пути для узла с правами доступа, доступными глобально
  • цикл через выход одной команды и использовать в другой команде
  • Как избежать <или> в параметре в оболочке?
  • Как передать список переменных в sed в функции оболочки
  • Почему xargs пропускает первый аргумент при передаче в подоболочку?
  • Сохранение и восстановление вкладок терминала с заголовком пользовательских вкладок
  • Как получить двоичные представления строк в Shell?
  • Почему grep обрабатывает строку ebug 'по-разному?
  • Принимая аргументы оболочки и обновляя значения
  • Interesting Posts

    Печать файлов с размером файла менее 100 байт

    Почему гостевой сервер linux потребляет 100% центрального процессора под VirtualBox, когда гость простаивает?

    домашний маршрутизатор – медленная пропускная способность

    Как остановить grub от возиться с моим разделом EFI?

    Как использовать один и тот же адаптер Wi-Fi для подключения к беспроводной сети и одновременно передавать AP?

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

    Какой инструмент может сказать мне дистрибутив Linux, который работает, когда uname является общим?

    После обновления и обновления apt-get мне нужно перекомпилировать и переустановить программное обеспечение, которое я не установил с помощью apt-get install?

    Извлечь отмеченные строки из текстового файла с помощью Bash

    USB-адаптер Wi-Fi всегда отключается через некоторое время

    Curl и Google Image

    Переадресация ввода-вывода и головная команда

    Есть ли простой способ создать оболочку sudo?

    scp не отображает вывод при использовании с gnu parallel

    Где / когда – статусы выхода, возвращаемые для фоновых заданий в bash?

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