bash find line and replace howto

First find the line number:

awk '/what you are searching for/{ print NR; exit }' input-file

86

Now use sed to replace it:

sed -i  86s/.*/"your replacement text"/ $file

 

Here is a full sample script to automate it:

file=some/file.txt
linenum=`awk /'your search query/{ print NR; exit }' $file`
newline=`echo -e "your new line here")`
sed -i "$linenum"s/.*/"$newline"/ $file


Tags:

bash, howtofirst, awk, nr, input, sed, quot, replacement, text, automate, txt, linenum, query, newline, echo,

Latest Articles

  • scp: ambiguous target error and solution
  • VirtualBox How To Add iSCSI Storage using VBoxManage
  • iSCSI on Centos 7 Configuration and Setup Guide for Initiator and Target
  • Python and BeautifulSoup4's BS4's Decompose Method To Remove Unwanted Inner Tags
  • httpd AH00534: httpd: Configuration error: No MPM loaded. solution
  • bash script to remove modules from httpd.conf that are not actually installed
  • bash scripting how to create a function
  • Centos 7 PHP MySQL Not Working Solution
  • Bash How To Cut or Split Natively And Get The LAST Field
  • Bash Script How To Manipulate Text/Strings By Searchig and Replacing Natively
  • How Does Cisco CUCM (Cisco Unified Communication Manager) Work?
  • What DNS Options Does Active Directory Offer in Windows Server 2008,2012,2016 ?
  • syntax error, unexpected T_SL in PHP Solution
  • grep regular expression match number range between specific numbers
  • bash how to print out lines of text within a range from the first occurrence
  • bash script how to to check LAN computers for open ports
  • MySQL Using mytop Debug Source of High IO and Slow Performance
  • How To Mathematically Convert and Calculate Binary Value To Decimal Value
  • systemd management using systemctl and journalctl to check systemd logs
  • css how to format code in the code tag