iT邦幫忙

0

如何在windows下將文字檔裡面的列數字串變成行數字串呢?

請教各位先進,如何在windows下將文字檔裡面的列數字串變成行數字串呢?

例如:
User
User1
User2

要輸出成此結果
User,User1,User3

我使用Findstr跟for還是找不出規則,用了SED跟AWK也抓不出規則,還請先進指點,感謝!

fillano iT邦超人 1 級 ‧ 2016-04-21 13:31:16 檢舉
如果用node.js,檔案當做字串讀進來以後:
data.split('\r\n').join(',');

完工。

用比較強的文字編輯器,例如Notepad++,用「,」取代「\r\n」,也是一樣意思。
fillano iT邦超人 1 級 ‧ 2016-04-21 13:34:58 檢舉
同理,用sed的話:
sed s/\r\n/,/ file.txt
0

用perl 去轉可能會比較快

benbenben iT邦新手 4 級 ‧ 2016-04-22 10:43:39 檢舉

awk 的{}符號在windows下好像無法過濾掉,我可以用什麼符號替代嗎?

10
raytracy
iT邦大神 1 級 ‧ 2016-04-21 13:38:20

sed 跟 awk 都搬出來了喔? 這樣怎麼可能解不掉:

<pre class="c" name="code">awk '{printf "%s,", $0} END {print ""}' < textfile.txt 

叫 awk 不要印出 \n 就不會換行了呀.....

benbenben iT邦新手 4 級 ‧ 2016-04-21 16:21:35 檢舉

我是用這指令去確認Client有沒有在Administrators的群組內

@echo off
Echo Searching .....
net localgroup administrators > Q2.txt

sed.exe 1,6d Q2.txt > Q3.txt

sed.exe ^$d Q3.txt > Q4.txt

findstr /V /G:Skip1.txt Q4.txt > Q5.txt

sed.exe -n $= Q5.txt

FOR %%F IN (Q5.txt) DO (
IF %%~zF LSS 1 DEL %%F
)

FOR /F "tokens=4 delims= " %%i in ('route print ^| find "0.0.0.0"') do echo %%i >> Q7.txt
findstr /V /G:Skip1.txt Q7.txt > Q8.txt
del Q7.txt

if NOT EXIST Q5.txt goto ZERO
echo %COMPUTERNAME% 此電腦擁有Admin權限 >> Q7.txt
echo %COMPUTERNAME% This PC has Admin Competence >> Q7.txt
goto END

:ZERO
echo %COMPUTERNAME% 此電腦沒有Admin權限 >> Q7.txt
echo %COMPUTERNAME% This PC haven't Admin Competence >> Q7.txt
goto ZERO2

:END
cls
@echo off
type Q8.txt
type Q7.txt
type Q5.txt
goto ENDEND

:ZERO2
cls
@echo off
type Q8.txt
type Q7.txt
goto ENDEND

:ENDEND
pause
Del Q2.txt&Del Q3.txt&Del Q4.txt&Del Q5.txt&Del Q7.txt&Del Q8.txt

awk 的{}符號在windows下好像無法過濾掉,我可以用什麼符號替代嗎?

benbenben iT邦新手 4 級 ‧ 2016-04-22 10:44:03 檢舉

awk 的{}符號在windows下好像無法過濾掉,我可以用什麼符號替代嗎?

fillano iT邦超人 1 級 ‧ 2016-04-23 09:58:48 檢舉

raytracy大的程式稍微改一下,拿掉單引號,存成檔案(例如叫做test.awk),然後執行awk時,這樣執行:

<pre class="c" name="code">
awk -f test.awk < test.txt

這樣就可以避開在命令列下某些字元不能出現在命令列的問題。(你的問題是這個嗎?)其實,像這樣

<pre class="c" name="code">
awk --help

執行awk就可以看到他怎麼使用...

0
mutualpak
iT邦研究生 5 級 ‧ 2016-04-22 11:42:55

檔案不多可以使用Notepad++ 編輯一下就可以了.尋找串字換行,取代成逗號,該行字串就會接在一起.

benbenben iT邦新手 4 級 ‧ 2016-04-22 12:16:02 檢舉

因為要設定成排程,所以需要程式去處裡此方面的字串!

Windows Script host 或Powershell更容易處理這種需求.

Windows Script host 或Powershell更容易處理這種需求.

我要發表回答

立即登入回答