在命令行中替换从文件中的管道获取的字符串

时间:2014-09-09 14:42:17

标签: string bash command-line replace sed

如何使用sedtrreplace替换我从管道获取的字符串,如:

head -n 1 myfile | sed -i 's/'-'/leg/g' new.log

2 个答案:

答案 0 :(得分:1)

试试这个:

MY_PAT=$(head -n 1 myfile)
sed -i "s/$MY_PAT/leg/g" new.log

sed -i "s/$(head -n 1 myfile)/leg/g" new.log

如果您的myfile包含特殊字符,请更好地举例说明。

答案 1 :(得分:0)

使用read shell内置来从stdin获取第一行。

#!/bin/bash
read TO_REPLACE
head -n 1 myfile | sed -i "s/$TO_REPLACE/leg/g" new.log