Ищите строку и замените строку

Извлеките часть IFS.

$IFS является внутренней переменной разделителя полей bash. Строка в скрипте приводит к тому, что bash разделяет поля только в новых строках, а не по умолчанию (пробел, табуляция и новая строка). Вывод ls разделен на табуляции.

This works:

#!/bin/bash

command="ls /tmp"

for file in `$command`;
do
    echo $file
done
0
20.03.2015, 13:52
2 ответа

Вы можете попробовать SED :

sed -i '3s/true/false/' file.txt

Если вы хотите сохранить исходный файл как file.txt.bak :

sed -i.bak '3s/true/false/' file.txt

также, если Вы хотите заменить более одного происшествия True с с в пределах одной строки в той же строке:

sed -i.bak '3s/true/false/g' file.txt

Редактировать: Согласно вашему осветливому запросу, попробуйте:

sed -i.bak '/DIFFERENTIAL\|[^t][^r][^u][^e]$/!s/true/false/' file.txt

это Заменит «True» с «ложным» в линиях, где нет «дифференциала», а также где «правда» поставляется в конце линии.

2
28.01.2020, 02:36

Я нашел следующую команду, которая поможет мне:

sed '/DIFFERENTIAL/!s/true/false/g'
0
28.01.2020, 02:36

Теги

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