linux - 从文本文件第一行的开头删除匹配的模式

标签 linux sed

我试图从文本文件第一行的开头删除匹配的模式( -import_file )。使用sedawk似乎是可行的方法。

尝试

sed -i 's/^-import_file//g' /home/weather/f00.txt

f00.txt

-import_file file1 -rpn sto_1
-import_file file2 -rpn sto_2
-import_file file3 -rpn sto_3
-import_file file4 -rpn sto_4
-import_file file5 -rpn sto_5
-import_file file6

这似乎实际上并没有对第 1 行开头的第一个匹配模式执行任何操作。

最佳答案

请尝试这个几乎等效的 POSIX AWK 解决方案(删除编辑行中的前导空格):

awk 'NR==1 {$1=""; print substr($0,2); next} 1' ~weather/f00.txt > temp && mv temp ~weather/f00.txt

我无法在我的计算机上复制您的问题。

$ sed --version |head -1
sed (GNU sed) 4.4

$ sed '1s/^-import_file//g' ~weather/f00.txt
 file1 -rpn sto_1
-import_file file2 -rpn sto_2
-import_file file3 -rpn sto_3
-import_file file4 -rpn sto_4
-import_file file5 -rpn sto_5
-import_file file6

关于linux - 从文本文件第一行的开头删除匹配的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56850280/

相关文章:

java - 如何创建非数据 gc.log 文件?

python - 使用适用于 Azure 的 Python SDK 时发生 HTTP header 错误

linux - 忽略 find 命令中的目录

mysql - 如何从 mysql 转储中获取所有完整的 CREATE TABLE 语句

perl - 删除数据集中的空行

linux - 如何将一行 Bash 脚本分隔成多行?

linux - 将一列的值插入到另一列

python - 导入错误 : No module name libstdcxx

unix - 仅替换第一个匹配行,同时保留前导空格

regex - 如何在使用 sed 替换文本时保留新行和格式?