簡體   English   中英

帶sed和隨機數的Shell腳本

[英]Shell Script With sed and Random number

如何制作一個shell腳本來接收一個或多個文本文件,並從中刪除空格和空白行。 之后,新文件將在其前面有一個隨機的2位數字。
例如File1.txt生成File1_56.txt

試過這個:

#!/bin/bash
for file in "$*"; do
sed -e '/^$/d;s/[[:blank:]]//g' $* >> "$*_$$.txt"
done 

但是,當我給2個文件作為輸入腳本時,它們會將它們合並為一個文件,而當我想要為每個文件分配一個單獨的文件時。

嘗試:

#!/bin/bash
for file in "$@"; do
    sed -e '/^$/d;s/[[:blank:]]//g' "$file" >> "${file%.txt}_$$.txt"
done 

筆記

  1. 要遍歷每個自變量而不會出現單詞拆分或其他危險,請使用for file in "$@" for file in "$*"而不是for file in "$*"

  2. 要在一個文件而不是全部文件上運行sed命令,請指定"$file"作為文件,而不是$*

  3. 要將輸出保存到正確的文件中,請使用"${file%.txt}_$$.txt" ,其中${file%.txt}后綴刪除的示例:它將從文件名中刪除最終的.txt

  4. $$是進程ID。 標題說有一個“隨機”數字。 如果您想要一個隨機數,請將$$替換為$RANDOM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM