GNU/Linux >> Znalost Linux >  >> Linux

bash skript připojí text k prvnímu řádku souboru

Toto sed příkaz přidá 123 na konec prvního řádku vašeho souboru.

sed ' 1 s/.*/&123/' yourfile.txt

také

sed '1 s/$/ 123/' yourfile.txt

Pro připojení výsledku ke stejnému souboru musíte použít -i přepínač :

sed -i ' 1 s/.*/&123/' yourfile.txt

Toto je řešení přidat "ok" na první řádek /etc/passwd , Myslím, že to můžete použít ve svém skriptu s trochou 'ladění':

$ awk 'NR==1{printf "%s %s\n", $0, "ok"}' /etc/passwd
root:x:0:0:root:/root:/bin/bash ok

Chcete-li upravit soubor, můžete použít ed , standardní editor:

line=' bcm2708.w1_gpio_pin=20'
file=/boot/cmdline.txt
if ! grep -q -x -F -e "$line" <"$file"; then
    ed -s "$file" < <(printf '%s\n' 1 a "$line" . 1,2j w q)
fi

ed Příkazy uživatele:

  • 1 :přejděte na řádek 1
  • a :append (vloží se za aktuální řádek)
  • Jsme v režimu vkládání a vkládáme rozšíření $line
  • . :zastavení režimu vkládání
  • 1,2j spojte řádky 1 a 2
  • w :psát
  • q :ukončit

Linux
  1. Může být Bash skript připojen k souboru?

  2. Připojit odpovídající text k řádku?

  3. Jak nahradit text podobný sedu pythonem?

  1. Jak vložit text před první řádek souboru?

  2. Odstraňte mezery na každém začátku řádku souboru pomocí bash

  3. sed:jak nahradit řádek, pokud byl nalezen, nebo připojit na konec souboru, pokud nebyl nalezen?

  1. Bash Script:Zkontrolujte, zda je soubor textovým souborem?

  2. Efektivně odstranit prvních pár řádků z textového souboru?

  3. Odstraňte prvních pět znaků na libovolném řádku textového souboru v Linuxu pomocí sed