簡體   English   中英

如何使用sed用逗號替換空格?

[英]How to replace space with comma using sed?

我想用逗號定界符替換每個字段之間的空白。有人可以讓我知道我該怎么做。我嘗試了以下命令,但它不起作用。謝謝。

My command:
:%s//,/


53 51097 310780 1
56 260 1925 1
68 51282 278770 1
77 46903 281485 1
82 475 2600 1
84 433 3395 1
96 212 1545 1
163 373819 1006375 1
204 36917 117195 1

如果您正在談論sed ,那么它可以工作:

sed -e "s/ /,/g" < a.txt

vim ,使用相同的正則表達式替換:

s/ /,/g

vim內部,要在普通(命令)模式下鍵入:

:%s/ /,/g

在終端提示下,您可以使用sed在文件上執行此操作:

sed -i 's/\ /,/g' input_file

注意: sed-i選項表示“就地編輯”,因為它將修改輸入文件。

我知道這不完全是您要的內容,但是,用換行符替換逗號,效果很好:

tr , '\n' < file

嘗試以下命令,它應該為您解決。

sed "s/\s/,/g" orignalFive.csv > editedFinal.csv

如果要在終端上輸出,

$sed 's/ /,/g' filename.txt

但是如果您要編輯文件本身, 要用文件中的逗號替換空格,

$sed -i 's/ /,/g' filename.txt

我剛剛確認:

cat file.txt | sed "s/\s/,/g"

在Cygwin終端(最小2.9.0)中成功用逗號替換了空格。 其他樣本都沒有為我工作。

如果您的數據包含任意序列的空白字符(制表符,空格),並且您想用一個逗號替換每個序列,請使用以下命令:

sed 's/[\t ]+/,/g' input_file

要么

sed -r 's/[[:blank:]]+/,/g' input_file

如果要替換空格字符序列(包括其他字符,例如回車符和退格鍵等),請使用以下命令:

sed -r 's/[[:space:]]+/,/g' input_file

在Linux上,使用以下代碼進行測試(它將用逗號替換空格)

 sed 's/\s/,/g' /tmp/test.txt | head

之后,您可以使用以下命令將輸出放入文件中:

sed 's/\s/,/g' /tmp/test.txt > /tmp/test_final.txt

PS:test是您要使用的文件

暫無
暫無

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

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