繁体   English   中英

如何使用Shell Script在文本文件中的查找词旁边添加特定词?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM