Bash: Запуск операции sed с вводом файла

read -r var
status=$?
echo "\$var='$var':\$?=$status"

Случаи новой строки и Ctrl -D различаются переменной состояния.

В случае перехода на новую строку статус true (0 ), в то время как при задании Ctrl -D, статус ложный (1)

1
11.08.2019, 06:18
2 ответа

Насколько я понимаю, вы пытаетесь заменить шаблон abdна xyzиз вашего текстового файла. Я попробовал следующее в NetBSD, и это работает:

#!/bin/bash
sed 's/.*abd.*/xyz/' $1

Результат был следующий:

$ cat input.txt 
one.abd.
two.abd.
abd
three
four
$./test.sh input.txt 
xyz
xyz
xyz
three
four

Я бы удалил -iи <из вашего скрипта, и он должен работать нормально. В качестве альтернативы я успешно пытался

#!/bin/bash
input=$1
sed 's/.*abd.*/xyz/' $input
0
28.01.2020, 00:03

попробуйте эту команду, она должна работать команда:sed -i 's/.*abd.*/xyz/' $1(убедитесь, что ваш шаблон правильный )если вы используете i, он автоматически заменит файл.

Выполнить-sed -i 's/.*abd.*/xyz/' input.txt

0
28.01.2020, 00:03

Теги

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