BBS-complangawk/320

トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

joining all lines - saylee (2006年06月25日 01時04分36秒)

全ての行を 1 行にして、";" で複数行に分割したいのです。

http://groups.google.co.jp/group/comp.lang.awk/browse_thread/thread/e85ed5997538eb87/e6686187bb883831?hl=ja#e6686187bb883831


Re: - Xicheng Jia (2006年06月25日 01時05分29秒)

shellutils でやった方が楽です。

tr -s "\n" " " < myfile.txt | sed 's/;\s*/;\n/g'

Re: - quarkLore (2006年06月25日 01時06分45秒)

awk 'BEGIN {RS=";"}//
{gsub("\n","");printf("[%s]\n",$0);}' <file_name>

のようにしてできます。

Re: - Loki Harfagr (2006年06月25日 01時07分46秒)

これこそ awk が最適です。

gawk -v RS=';' -v FS='\n' '$1=$1' yourfile.txt

Re: - Chris F.A. Johnson (2006年06月25日 01時08分30秒)

awk -v RS=';' -v FS='\n' '$1=$1 {printf "%s;\n", $0}' yourfile.txt

のようにしてもできます。

Re: - William Park (2006年06月25日 23時33分16秒)

以下のような一行野郎でもできます。

tr '\n;' ' \n'

Re: - Steffen Schuler (2006年07月03日 00時17分08秒)

変な挙動が見られます。

schuler@paulus:bin$ echo -e "1;2\n3;\n4\n" | gawk -v RS=';' -v FS='\n'
'$1=$1'
1
2 3
schuler@paulus:bin$ echo -e "1;2\n3;\n4\n" | gawk -v RS=';' '$1=$1'
1
2 3
4
schuler@paulus:bin$ gawk --version
GNU Awk 3.1.4

これはバグですか? 仕様ですか?

{{comment multi|w}}