[英]How to add a specific word next to the finding word in a text file using Shell Script?
我试图读取文本文件中的特定单词(Apple),并且需要使用Shell脚本在查找单词(Apple)旁边添加特定单词(Samsung)。
我知道如何使用Shell脚本读取文件并找到特定的单词。
#!/bin/bash
LOGFILE =$1
if[-f $LOGFILE ];
then
awk '/Apple/'
else
echo "$LOGFILE not found "
fi
我需要知道如何在同一文件中的查找词旁边添加新词。
例
苹果公司成立于1976年4月1日,并于1977年1月3日合并为苹果计算机公司。2007年1月9日,即乔布斯推出iPhone的同一天,“ Computer”一词从其名称中删除。 ,反映出其将重点转移到消费电子产品上。
预期
公司苹果 三星成立于1976年4月1日,并纳入苹果电脑公司于1月3日,从它的名字苹果 三星取消了对2007年1月9日,1977.The字“电脑”,当天史蒂夫·乔布斯推出iPhone,反映出其重点已转移到消费电子产品上。
谢谢。
只需使用sed
:
sed -i 's/Apple /& Samsung /g' myfile.txt
-i
标志(就地)将输出写回到该文件,该文件将覆盖源文件。
&
在替换中表示“整个匹配”。
首先,您的Bash语法已损坏。 您的脚本将无法按书面要求运行。
其次,如果要严格在shell中执行此操作,则应使用shell参数扩展来执行替换,然后使用fmt命令对段落进行重排。 例如:
#!/bin/bash
LOGFILE="$1"
if [[ -r "$LOGFILE" ]]; then
while read; do
echo "${REPLY//Apple/Apple Samsung}"
done < "$LOGFILE" | fmt
else
echo "Error: $LOGFILE not readable" > /dev/stderr
exit 66
fi
sed 's/Apple/& Samsung/g' $LOGFILE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.